Comment on the PR with Playwright results #2974
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 | |
echo "FLAKY=$(grep -c '^ *[0-9] flaky$' $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] Warning: Flaky tests or visual differences caused by this PR; please check the playwright report" | |
uses: mshick/add-pr-comment@dd126dd8c253650d181ad9538d8b4fa218fc31e8 # pin@v2 | |
if: steps.playwright.outputs.MASTER_SCREENSHOTS_OUTCOME != 'failure' && (steps.playwright.outputs.FLAKY != 0 || steps.playwright.outputs.FAILED != 0) | |
with: | |
issue: ${{ steps.source-run-info.outputs.pullRequestNumber }} | |
message: | | |
:warning: Flaky tests or visual differences caused by this PR; please check the playwright report. | |
<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) | |
- 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.FLAKY == 0 && 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 |