diff options
Diffstat (limited to '.github/workflows/playwright_comment.yml')
-rw-r--r-- | .github/workflows/playwright_comment.yml | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/.github/workflows/playwright_comment.yml b/.github/workflows/playwright_comment.yml new file mode 100644 index 00000000..8c33b618 --- /dev/null +++ b/.github/workflows/playwright_comment.yml @@ -0,0 +1,72 @@ +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: Grab playwright-output from PR run + uses: dawidd6/action-download-artifact@5e780fc7bbd0cac69fc73271ed86edf5dcb72d67 # pin@v2 + continue-on-error: true + id: playwright-output + 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@5e780fc7bbd0cac69fc73271ed86edf5dcb72d67 # pin@v2 + continue-on-error: true + id: master-screenshots-outcome + 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 "NUM_FAILED=$(grep -c 'Screenshot comparison failed' $GITHUB_OUTPUT)" >> $GITHUB_OUTPUT + + - name: "[Comment] Couldn't download screenshots from master branch" + uses: mshick/add-pr-comment@a65df5f64fc741e91c59b8359a4bc56e57aaf5b1 # pin@v2 + if: github.event_name == 'pull_request' && steps.master-screenshots-outcome == 'failure' + with: + 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@a65df5f64fc741e91c59b8359a4bc56e57aaf5b1 # pin@v2 + if: github.event_name == 'pull_request' && steps.master-screenshots-outcome != 'failure' && steps.playwright.outputs.NUM_FAILED == 0 + with: + message: | + :heavy_check_mark: No visual differences introduced by this PR. + [View Playwright Report](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }}#artifacts) (note: open the "playwright-report" artifact) + + - name: "[Comment] Warning: Visual differences introduced by this PR" + uses: mshick/add-pr-comment@a65df5f64fc741e91c59b8359a4bc56e57aaf5b1 # pin@v2 + if: github.event_name == 'pull_request' && steps.master-screenshots-outcome != 'failure' && steps.playwright.outputs.NUM_FAILED != 0 + with: + message: | + :warning: ${{ steps.playwright.outputs.NUM_FAILED }} visual differences introduced by this PR; please validate if they are desirable. + <details> + <summary>Playwright Test Results</summary> + <pre> + ${{ steps.playwright.outputs.PLAYWRIGHT_OUTPUT }} + </pre> + </details> + [View Playwright Report](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }}#artifacts) (note: open the "playwright-report" artifact) |