From 39e92b9e2e52c69e5140055052b2ed9b5013713d Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 21 Dec 2022 11:57:15 +0000 Subject: [PATCH] Add deploy previews Using workflow from element-web --- .github/workflows/build.yaml | 1 + .github/workflows/netlify-pr.yaml | 68 +++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 .github/workflows/netlify-pr.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a3fdc01e..f8cd67e9 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,5 +1,6 @@ name: Build on: + pull_request: {} push: branches: [main] env: diff --git a/.github/workflows/netlify-pr.yaml b/.github/workflows/netlify-pr.yaml new file mode 100644 index 00000000..b38a9ba3 --- /dev/null +++ b/.github/workflows/netlify-pr.yaml @@ -0,0 +1,68 @@ +name: Netlify PR Preview +on: + workflow_run: + workflows: ["Build"] + types: + - completed +jobs: + deploy: + if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request' + runs-on: ubuntu-latest + environment: Netlify + steps: + - name: 📝 Create Deployment + uses: bobheadxi/deployments@v1 + id: deployment + with: + step: start + token: ${{ secrets.GITHUB_TOKEN }} + env: Netlify + ref: ${{ github.event.workflow_run.head_sha }} + desc: | + Do you trust the author of this PR? Maybe this build will steal your keys or give you malware. + Exercise caution. Use test accounts. + + - id: prdetails + uses: matrix-org/pr-details-action@v1.2 + with: + owner: ${{ github.event.workflow_run.head_repository.owner.login }} + branch: ${{ github.event.workflow_run.head_branch }} + + # There's a 'download artifact' action, but it hasn't been updated for the workflow_run action + # (https://github.com/actions/download-artifact/issues/60) so instead we get this mess: + - name: 📥 Download artifact + uses: dawidd6/action-download-artifact@v2 + with: + run_id: ${{ github.event.workflow_run.id }} + name: previewbuild + path: webapp + + - name: ☁️ Deploy to Netlify + id: netlify + uses: nwtgck/actions-netlify@v1.2 + with: + publish-dir: webapp + deploy-message: "Deploy from GitHub Actions" + # These don't work because we're in workflow_run + enable-pull-request-comment: false + enable-commit-comment: false + alias: pr${{ steps.prdetails.outputs.pr_id }} + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + timeout-minutes: 1 + + - name: 🚦 Update deployment status + uses: bobheadxi/deployments@v1 + if: always() + with: + step: finish + override: false + token: ${{ secrets.GITHUB_TOKEN }} + status: ${{ job.status }} + env: ${{ steps.deployment.outputs.env }} + deployment_id: ${{ steps.deployment.outputs.deployment_id }} + env_url: ${{ steps.netlify.outputs.deploy-url }} + desc: | + Do you trust the author of this PR? Maybe this build will steal your keys or give you malware. + Exercise caution. Use test accounts.