aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/playwright.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/playwright.yml')
-rw-r--r--.github/workflows/playwright.yml50
1 files changed, 16 insertions, 34 deletions
diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml
index 5ee786ef..409d73a6 100644
--- a/.github/workflows/playwright.yml
+++ b/.github/workflows/playwright.yml
@@ -9,9 +9,6 @@ jobs:
playwright:
timeout-minutes: 60
runs-on: ubuntu-latest
- permissions:
- pull-requests: write
- contents: write
steps:
- uses: actions/checkout@v3
@@ -38,15 +35,17 @@ jobs:
- name: Grab latest dictionaries from dictionaries branch
uses: actions/checkout@v3
with:
+ repository: themoeway/yomitan # so that this works on forks
ref: dictionaries
path: dictionaries
- name: Grab latest screenshots from master branch
uses: dawidd6/action-download-artifact@5e780fc7bbd0cac69fc73271ed86edf5dcb72d67 # pin@v2
continue-on-error: true
- id: download-screenshots
+ id: master-screenshots
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
+ repo: themoeway/yomitan # so that this works on forks
name: playwright-screenshots
branch: master
workflow: playwright.yml
@@ -56,13 +55,9 @@ jobs:
- name: "[PR] Generate new screenshots & compare against master"
id: playwright
run: |
- EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
- echo "PLAYWRIGHT_OUTPUT<<$EOF" >> $GITHUB_OUTPUT
- npx playwright test 2>&1 | tee $GITHUB_OUTPUT || true
- echo "$EOF" >> $GITHUB_OUTPUT
- echo "NUM_FAILED=$(grep -c 'Screenshot comparison failed' $GITHUB_OUTPUT)" >> $GITHUB_OUTPUT
+ npx playwright test 2>&1 | tee ./playwright-output || true
continue-on-error: true
- if: github.event_name == 'pull_request' && steps.download-screenshots.outcome != 'failure'
+ if: github.event_name == 'pull_request' && steps.master-screenshots.outcome != 'failure'
- name: "[Push] Generate new authoritative screenshots for master"
id: playwright-master
@@ -79,31 +74,18 @@ jobs:
name: playwright-report
path: playwright-report/
- - name: "[Couldn't download screenshots] Comment results on PR"
- uses: mshick/add-pr-comment@a65df5f64fc741e91c59b8359a4bc56e57aaf5b1 # pin@v2
- if: github.event_name == 'pull_request' && steps.download-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 "download-screenshots" step in the workflow run and rerun it before merging.
+ - name: "[PR] Store steps.master-screenshots.outcome in a file"
+ run: echo ${{ steps.master-screenshots.outcome }} > ./master-screenshots-outcome
+ if: github.event_name == 'pull_request'
- - name: "[Success] Comment results on PR"
- uses: mshick/add-pr-comment@a65df5f64fc741e91c59b8359a4bc56e57aaf5b1 # pin@v2
- if: github.event_name == 'pull_request' && steps.download-screenshots.outcome != 'failure' && steps.playwright.outputs.NUM_FAILED == 0
+ - uses: actions/upload-artifact@v3
with:
- message: |
- :heavy_check_mark: No visual differences introduced by this PR.
- [View Playwright Report](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts) (note: open the "playwright-report" artifact)
+ name: master-screenshots-outcome
+ path: master-screenshots-outcome
+ if: github.event_name == 'pull_request'
- - name: "[Failure] Comment results on PR"
- uses: mshick/add-pr-comment@a65df5f64fc741e91c59b8359a4bc56e57aaf5b1 # pin@v2
- if: github.event_name == 'pull_request' && steps.download-screenshots.outcome != 'failure' && steps.playwright.outputs.NUM_FAILED != 0
+ - uses: actions/upload-artifact@v3
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.run_id }}#artifacts) (note: open the "playwright-report" artifact)
+ name: playwright-output
+ path: playwright-output
+ if: github.event_name == 'pull_request'