added cargo files
This commit is contained in:
92
PinePods-0.8.2/.github/workflows/build-snap.yml
vendored
Normal file
92
PinePods-0.8.2/.github/workflows/build-snap.yml
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
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
|
||||
Reference in New Issue
Block a user