name: Publish Snap on: push: branches: - develop jobs: jobs: name: Job Check runs-on: ubuntu-20.04 if: "!contains(github.event.head_commit.message, '[skip ci]')" steps: - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.9.1 with: access_token: ${{ secrets.GITHUB_TOKEN }} test: name: Lint & Test Build needs: jobs runs-on: ubuntu-20.04 container: node:16.16-alpine steps: - name: Checkout uses: actions/checkout@v2 - name: Install dependencies env: HUSKY_SKIP_INSTALL: 1 run: yarn - name: Lint run: yarn lint - name: Build run: yarn build build-snap: name: Build Snap Package (${{ matrix.architecture }}) needs: test runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: architecture: - amd64 - arm64 - armhf steps: - name: Checkout Code uses: actions/checkout@v2 - name: Prepare id: prepare run: | git fetch --prune --unshallow --tags if [[ $GITHUB_REF == refs/tags/* || $GITHUB_REF == refs/heads/master ]]; then echo ::set-output name=RELEASE::stable else echo ::set-output name=RELEASE::edge fi - name: Set Up QEMU uses: docker/setup-qemu-action@v1 with: image: tonistiigi/binfmt@sha256:df15403e06a03c2f461c1f7938b171fda34a5849eb63a70e2a2109ed5a778bde - name: Build Snap Package uses: diddlesnaps/snapcraft-multiarch-action@v1 id: build with: architecture: ${{ matrix.architecture }} - name: Upload Snap Package uses: actions/upload-artifact@v2 with: name: overseerr-snap-package-${{ matrix.architecture }} path: ${{ steps.build.outputs.snap }} - name: Review Snap Package uses: diddlesnaps/snapcraft-review-tools-action@v1 with: snap: ${{ steps.build.outputs.snap }} - name: Publish Snap Package uses: snapcore/action-publish@v1 with: store_login: ${{ secrets.SNAP_LOGIN }} snap: ${{ steps.build.outputs.snap }} release: ${{ steps.prepare.outputs.RELEASE }} discord: name: Send Discord Notification needs: build-snap if: always() && !contains(github.event.head_commit.message, '[skip ci]') runs-on: ubuntu-20.04 steps: - name: Get Build Job Status uses: technote-space/workflow-conclusion-action@v2 - name: Combine Job Status id: status run: | failures=(neutral, skipped, timed_out, action_required) if [[ ${array[@]} =~ $WORKFLOW_CONCLUSION ]]; then echo ::set-output name=status::failure else echo ::set-output name=status::$WORKFLOW_CONCLUSION fi - name: Post Status to Discord uses: sarisia/actions-status-discord@v1 with: webhook: ${{ secrets.DISCORD_WEBHOOK }} status: ${{ steps.status.outputs.status }} title: ${{ github.workflow }} nofail: true