diff options
Diffstat (limited to '.github/workflows/playwright.yml')
-rw-r--r-- | .github/workflows/playwright.yml | 50 |
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' |