# Triggers after the shared component tests have finished,
# It uploads the received images and diffs to netlify, printing the URLs to the console
name: Upload Shared Component Visual Test Diffs
on:
    # Privilege escalation necessary to deploy to Netlify
    # 🚨 We must not execute any checked out code here.
    workflow_run: # zizmor: ignore[dangerous-triggers]
        workflows: ["Shared Component Visual Tests"]
        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 == 'failure'
        name: Upload Diffs
        runs-on: ubuntu-24.04
        environment: Netlify
        permissions:
            actions: read
            deployments: write
        steps:
            - name: Install tree
              run: "sudo apt-get install -y tree"

            - name: Download Diffs
              uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
              with:
                  github-token: ${{ secrets.GITHUB_TOKEN }}
                  run-id: ${{ github.event.workflow_run.id }}
                  name: received-images
                  path: received-images

            - name: Generate Index
              run: "cd received-images && tree -L 1 --noreport -H '' -o index.html ."

            - name: 📤 Deploy to Netlify
              uses: matrix-org/netlify-pr-preview@9805cd123fc9a7e421e35340a05e1ebc5dee46b5 # v3
              with:
                  path: received-images
                  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: ${{ vars.NETLIFY_SITE_ID }}
                  desc: Shared Component Visual Diffs
                  deployment_env: SharedComponentDiffs
                  prefix: "diffs-"
