diff --git a/.github/workflows/promote-to-stable.yaml b/.github/workflows/promote-to-stable.yaml new file mode 100644 index 0000000..f38b063 --- /dev/null +++ b/.github/workflows/promote-to-stable.yaml @@ -0,0 +1,25 @@ +name: Promote + +on: + issue_comment: + types: + - created + +permissions: + issues: write + +jobs: + promote: + name: โฌ†๏ธ Promote to stable + environment: "Candidate Branch" + runs-on: ubuntu-latest + if: | + ( !github.event.issue.pull_request ) + && contains(github.event.comment.body, '/promote ') + && contains(github.event.*.labels.*.name, 'testing') + steps: + - name: โฌ†๏ธ Promote to stable + uses: snapcrafters/ci/promote-to-stable@main + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + store-token: ${{ secrets.SNAP_STORE_STABLE }} diff --git a/.github/workflows/pull-request.yaml b/.github/workflows/pull-request.yaml new file mode 100644 index 0000000..48d1faf --- /dev/null +++ b/.github/workflows/pull-request.yaml @@ -0,0 +1,17 @@ +name: Pull Request + +on: + pull_request: + branches: [ "**" ] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: ๐Ÿงช Build snap on amd64 + runs-on: ubuntu-latest + steps: + - name: ๐Ÿงช Build snap on amd64 + uses: snapcrafters/ci/test-snap-build@main diff --git a/.github/workflows/release-to-candidate.yaml b/.github/workflows/release-to-candidate.yaml new file mode 100644 index 0000000..402966e --- /dev/null +++ b/.github/workflows/release-to-candidate.yaml @@ -0,0 +1,72 @@ +name: Release + +on: + # Run the workflow each time new commits are pushed to the candidate branch. + push: + branches: [ "candidate" ] + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + issues: write + +jobs: + get-architectures: + name: ๐Ÿ–ฅ Get snap architectures + runs-on: ubuntu-latest + outputs: + architectures: ${{ steps.get-architectures.outputs.architectures }} + architectures-list: ${{ steps.get-architectures.outputs.architectures-list }} + steps: + - name: ๐Ÿ–ฅ Get snap architectures + id: get-architectures + uses: snapcrafters/ci/get-architectures@main + + release: + name: ๐Ÿšข Release to latest/candidate + needs: get-architectures + runs-on: ubuntu-latest + environment: "Candidate Branch" + strategy: + matrix: + architecture: ${{ fromJSON(needs.get-architectures.outputs.architectures-list) }} + steps: + - name: ๐Ÿšข Release to latest/candidate + uses: snapcrafters/ci/release-to-candidate@main + with: + architecture: ${{ matrix.architecture }} + launchpad-token: ${{ secrets.LP_BUILD_SECRET }} + repo-token: ${{ secrets.SNAPCRAFTERS_BOT_COMMIT }} + store-token: ${{ secrets.SNAP_STORE_CANDIDATE }} + + call-for-testing: + name: ๐Ÿ“ฃ Create call for testing + needs: [release, get-architectures] + environment: "Candidate Branch" + runs-on: ubuntu-latest + outputs: + issue-number: ${{ steps.issue.outputs.issue-number }} + steps: + - name: ๐Ÿ“ฃ Create call for testing + id: issue + uses: snapcrafters/ci/call-for-testing@main + with: + architectures: ${{ needs.get-architectures.outputs.architectures }} + github-token: ${{ secrets.GITHUB_TOKEN }} + + screenshots: + name: ๐Ÿ“ธ Gather screenshots + needs: call-for-testing + environment: "Candidate Branch" + runs-on: ubuntu-latest + steps: + - name: ๐Ÿ“ธ Gather screenshots + uses: snapcrafters/ci/get-screenshots@main + with: + issue-number: ${{ needs.call-for-testing.outputs.issue-number }} + github-token: ${{ secrets.GITHUB_TOKEN }} + screenshots-token: ${{ secrets.SNAPCRAFTERS_BOT_COMMIT }} diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 1154da7..fc8fe51 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,6 +6,13 @@ description: | This is NCSA Mosaic 2.7, one of the first graphical web browsers. confinement: strict grade: stable +architectures: + - amd64 + - arm64 + - armhf + - ppc64el + - riscv64 + - s390x apps: mosaic: