From 86cb05883306a99ba76396c0fda63f143bb6d912 Mon Sep 17 00:00:00 2001 From: "James O. D. Hunt" Date: Mon, 28 Nov 2022 15:47:43 +0000 Subject: [PATCH] snap: Fix snapcraft setup (unbreak snap releases) Setup the snapcraft environment manually as the action we had been using for this does not appear to be actively maintained currently. Related to this, switch to specifying the snapcraft store credentials using the `SNAPCRAFT_STORE_CREDENTIALS` secret. This unbreaks `snapcraft upload`, which Canonical appear to have broken by removing the previous facility. Fixes: #5772. Signed-off-by: James O. D. Hunt --- .github/workflows/snap-release.yaml | 16 +++++++++++++--- .github/workflows/snap.yaml | 11 ++++++++++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/workflows/snap-release.yaml b/.github/workflows/snap-release.yaml index b271d7d3d..0d41197a0 100644 --- a/.github/workflows/snap-release.yaml +++ b/.github/workflows/snap-release.yaml @@ -4,6 +4,9 @@ on: tags: - '[0-9]+.[0-9]+.[0-9]+*' +env: + SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.snapcraft_token }} + jobs: release-snap: runs-on: ubuntu-20.04 @@ -14,9 +17,16 @@ jobs: fetch-depth: 0 - name: Install Snapcraft - uses: samuelmeuli/action-snapcraft@v1 - with: - snapcraft_token: ${{ secrets.snapcraft_token }} + run: | + # Required to avoid snapcraft install failure + sudo chown root:root / + + # "--classic" is needed for the GitHub action runner + # environment. + sudo snap install snapcraft --classic + + # Allow other parts to access snap binaries + echo /snap/bin >> "$GITHUB_PATH" - name: Build snap run: | diff --git a/.github/workflows/snap.yaml b/.github/workflows/snap.yaml index a924646a2..2f1495824 100644 --- a/.github/workflows/snap.yaml +++ b/.github/workflows/snap.yaml @@ -20,7 +20,16 @@ jobs: - name: Install Snapcraft if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} - uses: samuelmeuli/action-snapcraft@v1 + run: | + # Required to avoid snapcraft install failure + sudo chown root:root / + + # "--classic" is needed for the GitHub action runner + # environment. + sudo snap install snapcraft --classic + + # Allow other parts to access snap binaries + echo /snap/bin >> "$GITHUB_PATH" - name: Build snap if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }}