Comment on the PR with Playwright results #2808
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Comment on the PR with Playwright results | |
on: | |
workflow_run: | |
workflows: ["Playwright Tests"] | |
types: | |
- completed | |
permissions: {} | |
jobs: | |
playwright_comment: | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: write | |
if: > | |
github.event.workflow_run.event == 'pull_request' && | |
github.event.workflow_run.conclusion == 'success' | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 | |
with: | |
egress-policy: audit | |
- name: Grab playwright-output from PR run | |
uses: dawidd6/action-download-artifact@bf251b5aa9c2f7eeb574a96ee720e24f801b7c11 # pin@v2 | |
continue-on-error: true | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
run_id: ${{ github.event.workflow_run.id }} | |
name: playwright-output | |
- name: Grab master-screenshots-outcome from PR run | |
uses: dawidd6/action-download-artifact@bf251b5aa9c2f7eeb574a96ee720e24f801b7c11 # pin@v2 | |
continue-on-error: true | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
run_id: ${{ github.event.workflow_run.id }} | |
name: master-screenshots-outcome | |
- name: Load artifacts into environment variables | |
id: playwright | |
run: | | |
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) | |
echo "PLAYWRIGHT_OUTPUT<<$EOF" >> $GITHUB_OUTPUT | |
cat ./playwright-output >> $GITHUB_OUTPUT | |
echo "$EOF" >> $GITHUB_OUTPUT | |
echo "MASTER_SCREENSHOTS_OUTCOME<<$EOF" >> $GITHUB_OUTPUT | |
cat ./master-screenshots-outcome >> $GITHUB_OUTPUT | |
echo "$EOF" >> $GITHUB_OUTPUT | |
echo "FAILED=$(grep -c '^ *[0-9] failed$' $GITHUB_OUTPUT)" >> $GITHUB_OUTPUT | |
# this is required because github.event.workflow_run.pull_requests is not available for PRs from forks | |
- name: "Get PR information" | |
uses: potiuk/get-workflow-origin@e2dae063368361e4cd1f510e8785cd73bca9352e # pin@v1_5 | |
id: source-run-info | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
sourceRunId: ${{ github.event.workflow_run.id }} | |
- name: "[Comment] Couldn't download screenshots from master branch" | |
uses: mshick/add-pr-comment@dd126dd8c253650d181ad9538d8b4fa218fc31e8 # pin@v2 | |
if: steps.playwright.outputs.MASTER_SCREENSHOTS_OUTCOME == 'failure' | |
with: | |
issue: ${{ steps.source-run-info.outputs.pullRequestNumber }} | |
message: | | |
:heavy_exclamation_mark: Could not fetch screenshots from master branch, so had nothing to make a visual comparison against; please check the "master-screenshots" step in the workflow run and rerun it before merging. | |
- name: "[Comment] Success: No visual differences introduced by this PR" | |
uses: mshick/add-pr-comment@dd126dd8c253650d181ad9538d8b4fa218fc31e8 # pin@v2 | |
if: steps.playwright.outputs.MASTER_SCREENSHOTS_OUTCOME != 'failure' && steps.playwright.outputs.FAILED == 0 | |
with: | |
issue: ${{ steps.source-run-info.outputs.pullRequestNumber }} | |
message: | | |
:heavy_check_mark: No visual differences introduced by this PR. | |
<a href="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }}#artifacts">View Playwright Report</a> (note: open the "playwright-report" artifact) | |
update-only: true | |
- name: "[Comment] Warning: Visual differences introduced by this PR" | |
uses: mshick/add-pr-comment@dd126dd8c253650d181ad9538d8b4fa218fc31e8 # pin@v2 | |
if: steps.playwright.outputs.MASTER_SCREENSHOTS_OUTCOME != 'failure' && steps.playwright.outputs.FAILED != 0 | |
with: | |
issue: ${{ steps.source-run-info.outputs.pullRequestNumber }} | |
message: | | |
:warning: Visual differences introduced by this PR; please validate if they are desirable. | |
<a href="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }}#artifacts">View Playwright Report</a> (note: open the "playwright-report" artifact) |