--- name: Snapcraft on: push: branches: - main tags: - "*" pull_request: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: build: runs-on: ubuntu-latest outputs: snap: ${{ steps.snapcraft.outputs.snap }} steps: - name: Maximize build space uses: easimon/maximize-build-space@master with: root-reserve-mb: 25000 swap-size-mb: 1024 remove-dotnet: 'true' remove-android: 'true' remove-haskell: 'true' remove-codeql: 'true' remove-docker-images: 'true' - uses: actions/checkout@v4 with: submodules: recursive - uses: snapcore/action-build@v1.3.0 id: snapcraft - run: | sudo apt-get update sudo apt-get install libportaudio2 libtbb-dev - run: sudo snap install --devmode *.snap - run: | cd $HOME xvfb-run buzz --version - uses: actions/upload-artifact@v4 with: name: snap path: ${{ steps.snapcraft.outputs.snap }} upload-edge: runs-on: ubuntu-latest needs: [ build ] if: github.ref == 'refs/heads/main' steps: - uses: actions/download-artifact@v4 with: name: snap - uses: snapcore/action-publish@v1 env: SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_TOKEN }} with: snap: ${{ needs.build.outputs.snap }} release: edge upload-stable: runs-on: ubuntu-latest needs: [ build ] if: startsWith(github.ref, 'refs/tags/') steps: - uses: actions/download-artifact@v4 with: name: snap - uses: snapcore/action-publish@v1 env: SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_TOKEN }} with: snap: ${{ needs.build.outputs.snap }} release: stable