name: Snap on: push: paths-ignore: - scripts/docker/** branches: - master pull_request: paths-ignore: - scripts/docker/** branches: - master jobs: Snap: runs-on: ubuntu-latest timeout-minutes: 60 steps: - name: Check out code uses: actions/checkout@v4 with: fetch-depth: 0 submodules: recursive - name: set the version information id: version_number uses: ./.github/actions/manage-version with: nightly-builds-secret: ${{ secrets.NIGHTLY_BUILDS }} - name: store dummy version and build number for pull request if: github.event_name == 'pull_request' run: | echo "100" > latest-subsurface-buildnumber echo "CICD-pull-request" > latest-subsurface-buildnumber-extension - name: Set up LXD uses: canonical/setup-lxd@main - name: Set up CCache id: setup-ccache run: | sudo apt-get install ccache mkdir -p ${HOME}/.ccache ccache --max-size=2G /snap/bin/lxc profile device add default ccache disk source=${HOME}/.ccache/ path=/root/.ccache # Patch snapcraft.yaml to enable ccache patch -p1 < .github/workflows/scripts/linux-snap.patch # Find common base between master and HEAD to use as cache key. git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules origin master echo "key=$( git merge-base origin/master $GITHUB_SHA )" >> $GITHUB_OUTPUT - name: CCache uses: actions/cache@v4 with: key: ccache-${{ runner.os }}-${{ steps.setup-ccache.outputs.key }} restore-keys: | ccache-${{ runner.os }}- path: ~/.ccache/** - name: Build and verify the snap uses: canonical/actions/build-snap@release id: build-snap with: setup-lxd: false - name: Clear CCache stats run: ccache --show-stats --zero-stats - name: Upload the snap if: github.event_name == 'push' uses: actions/upload-artifact@v4 with: name: ${{ steps.build-snap.outputs.snap-name }} path: ${{ steps.build-snap.outputs.snap-path }} if-no-files-found: error