diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 012568a99..581f134d0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -74,6 +74,13 @@ jobs: echo $GITHUB_WORKSPACE docker run --privileged -e CI=true -t -v $GITHUB_WORKSPACE:/github/workspace docker.pkg.github.com/fwupd/fwupd/fwupd-${{matrix.os}}:latest + snap: + uses: ./.github/workflows/snap.yml + with: + deploy: ${{ github.event_name }} == "push' + channel: edge + secrets: inherit + macos: runs-on: macos-12 steps: diff --git a/.github/workflows/snap-stable.yml b/.github/workflows/snap-stable.yml new file mode 100644 index 000000000..cbc02cc07 --- /dev/null +++ b/.github/workflows/snap-stable.yml @@ -0,0 +1,13 @@ +name: Publish to snap stable channel + +on: + release: + types: [published] + +jobs: + snap: + uses: ./.github/workflows/snap.yml + with: + deploy: true + channel: stable + secrets: inherit \ No newline at end of file diff --git a/.github/workflows/snap.yml b/.github/workflows/snap.yml new file mode 100644 index 000000000..4ed2da16e --- /dev/null +++ b/.github/workflows/snap.yml @@ -0,0 +1,38 @@ +name: Snap workflow +on: + workflow_call: + inputs: + channel: + required: true + type: string + deploy: + required: true + type: boolean + +jobs: + build-snap: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: snapcore/action-build@v1 + id: snapcraft + - uses: actions/upload-artifact@v3 + with: + name: snap + path: ${{ steps.snapcraft.outputs.snap }} + + deploy-store: + needs: build-snap + runs-on: ubuntu-latest + if: ${{ inputs.perform_deploy }} + steps: + - uses: actions/checkout@v2 + - uses: actions/download-artifact@v3 + with: + name: snap + - uses: snapcore/action-publish@v1 + env: + SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }} + with: + snap: ${{ steps.build.outputs.snap }} + release: ${{ inputs.channel }}