name: "maybe deploy" on: workflow_run: workflows: [ "build" ] types: [ "completed" ] branches: [ "master" ] permissions: contents: "write" jobs: check-early-exit: runs-on: "ubuntu-latest" outputs: should-deploy: "${{ steps.check-early-exit.outputs.should-deploy }}" steps: - run: | if [ "${{ github.event.workflow_run.conclusion }}" != "success" ]; then echo "Not deploying because the CI workflow did not succeed." echo "should-deploy=false" >> $GITHUB_ENV elif ! echo "${{ github.ref }}" | grep -q -E "^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+.*"; then echo "Not deploying because the CI workflow was not triggered by a release tag." echo "should-deploy=false" >> $GITHUB_ENV else echo "should-deploy=true" >> $GITHUB_ENV fi deploy: concurrency: "ci-${{ github.ref }}" # Recommended if you intend to make multiple deployments in quick succession. runs-on: "ubuntu-latest" needs: "check-early-exit" if: "needs.check-early-exit.outputs.should-deploy == 'true'" steps: - uses: "dawidd6/action-download-artifact@v3" with: workflow: "ci.yml" name: "frontend" path: "./public" - uses: "dawidd6/action-download-artifact@v3" with: workflow: "ci.yml" name: "logo" path: "./public" - run: "ls -l -R ./public" - uses: "JamesIves/github-pages-deploy-action@v4" with: folder: "public" - uses: "svenstaro/upload-release-action@v2" with: repo_token: "${{ secrets.GITHUB_TOKEN }}" file: "./public/*" asset_name: "frontend" tag: "${{ github.ref }}" overwrite: true file_glob: true