# Triggers after the layered build has finished, taking the artifact
# and uploading it to netlify
name: Upload Preview Build to Netlify
on:
    workflow_run:
        workflows: ["Element Web - 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@88ce5600046c82542f8246ac287d0a53c461bca3 # 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@5e780fc7bbd0cac69fc73271ed86edf5dcb72d67 # v2
              with:
                  run_id: ${{ github.event.workflow_run.id }}
                  name: previewbuild
                  path: webapp

            - name: ☁️ Deploy to Netlify
              id: netlify
              uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03 # v2.0
              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@88ce5600046c82542f8246ac287d0a53c461bca3 # 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.
