93 lines
2.9 KiB
YAML
93 lines
2.9 KiB
YAML
name: Build Pinepods Snap
|
|
|
|
on:
|
|
# workflow_run:
|
|
# workflows: ["Build Tauri Clients"]
|
|
# types:
|
|
# - completed
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: "Version to build (for testing)"
|
|
required: true
|
|
default: "test"
|
|
|
|
jobs:
|
|
build-snap:
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }}
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Get version
|
|
id: get_version
|
|
run: |
|
|
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
|
echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV
|
|
else
|
|
LATEST_RELEASE=$(curl -s https://api.github.com/repos/${{ github.repository }}/releases/latest | jq -r .tag_name)
|
|
echo "VERSION=$LATEST_RELEASE" >> $GITHUB_ENV
|
|
fi
|
|
|
|
- name: Install Snap
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y snapd
|
|
|
|
- name: Install Snapcraft
|
|
run: |
|
|
sudo apt-get install -y snapd
|
|
sudo snap install core22
|
|
sudo snap install snapcraft --classic
|
|
|
|
- name: Install Multipass
|
|
run: |
|
|
sudo snap install multipass --classic
|
|
|
|
# - name: Setup LXD
|
|
# uses: canonical/setup-lxd@main
|
|
# with:
|
|
# channel: latest/edge
|
|
|
|
- name: Prepare Snap configuration
|
|
run: |
|
|
cp clients/snap/snapcraft.yaml ./snapcraft.yaml
|
|
sudo chown root:root snapcraft.yaml
|
|
sudo chmod 644 snapcraft.yaml
|
|
sed -i "s|version: '.*'|version: '$VERSION'|" snapcraft.yaml
|
|
sed -i "s|url: .*|url: https://github.com/${{ github.repository }}/releases/download/$VERSION/pinepods_${VERSION}_amd64.deb|" snapcraft.yaml
|
|
sed -i "s|Icon=appname|Icon=/usr/share/icons/hicolor/128x128/apps/com.gooseberrydevelopment.pinepods.png|" snapcraft.yaml
|
|
|
|
- name: Configure snapcraft to use Multipass
|
|
run: |
|
|
sudo snap set snapcraft provider=multipass
|
|
|
|
- name: Nuclear permissions reset
|
|
run: |
|
|
sudo rm -rf /root/project || true
|
|
sudo mkdir -p /root/project
|
|
sudo cp -r . /root/project/
|
|
sudo chown -R root:root /root/project
|
|
sudo chmod -R 777 /root/project
|
|
sudo chmod -R a+rwx /root/project
|
|
sudo ls -la /root/project
|
|
|
|
- name: Build Snap package
|
|
env:
|
|
SNAPCRAFT_PROJECT_DIR: ${{ github.workspace }}
|
|
run: sudo -E snapcraft --verbose
|
|
|
|
- name: Archive Snap files
|
|
run: |
|
|
mkdir snap_output
|
|
cp *.snap snap_output/
|
|
cp snapcraft.yaml snap_output/
|
|
tar -czvf snap_files.tar.gz snap_output
|
|
|
|
- name: Upload Snap archive
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: snap-files
|
|
path: snap_files.tar.gz
|