# 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.

            # 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@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2
              with:
                  run_id: ${{ github.event.workflow_run.id }}
                  name: previewbuild
                  path: webapp

            - name: 📤 Deploy to Netlify
              uses: matrix-org/netlify-pr-preview@v2
              with:
                  path: webapp
                  owner: ${{ github.event.workflow_run.head_repository.owner.login }}
                  branch: ${{ github.event.workflow_run.head_branch }}
                  revision: ${{ github.event.workflow_run.head_sha }}
                  token: ${{ secrets.NETLIFY_AUTH_TOKEN }}
                  site_id: ${{ secrets.NETLIFY_SITE_ID }}
                  deployment_env: ${{ steps.deployment.outputs.env }}
                  deployment_id: ${{ steps.deployment.outputs.deployment_id }}
                  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.
