# Triggers after the playwright tests have finished,
# taking the artifact and uploading it to Netlify for easier viewing
name: Upload End to End Test report to Netlify
on:
  # Privilege escalation necessary to publish to Netlify
  # 🚨 We must not execute any checked out code here.
  workflow_run: # zizmor: ignore[dangerous-triggers]
    workflows: ["Test"]
    types:
      - completed

concurrency:
  group: ${{ github.workflow }}-${{ github.event.workflow_run.head_branch || github.run_id }}
  cancel-in-progress: ${{ github.event.workflow_run.event == 'pull_request' }}

permissions: {}

jobs:
  report:
    if: github.event.workflow_run.conclusion != 'cancelled'
    name: Report results
    runs-on: ubuntu-24.04
    environment: Netlify
    permissions:
      statuses: write
      deployments: write
      actions: read
    steps:
      - name: Download HTML report
        uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          run-id: ${{ github.event.workflow_run.id }}
          name: html-report
          path: playwright-report

      - name: 📤 Deploy to Netlify
        uses: matrix-org/netlify-pr-preview@9805cd123fc9a7e421e35340a05e1ebc5dee46b5 # v3
        with:
          path: playwright-report
          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 }}
          desc: Playwright Report
          deployment_env: EndToEndTests
          prefix: "e2e-"
