Replace JsonSchema with ajv for dictionary validation #417
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: Playwright Tests | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
permissions: | |
contents: read | |
jobs: | |
playwright: | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
env: | |
PW_EXPERIMENTAL_SERVICE_WORKER_NETWORK_EVENTS: 1 | |
steps: | |
- name: Remove all fonts | |
run: rm -rf /usr/share/fonts | |
- uses: actions/checkout@v4 | |
- name: Install CJK fonts | |
uses: awalsh128/cache-apt-pkgs-action@44c33b32f808cdddd5ac0366d70595ed63661ed8 # v1.3.1 | |
with: | |
packages: fonts-ipafont-mincho | |
execute_install_scripts: true | |
- uses: actions/setup-node@v4 | |
with: | |
cache: "npm" | |
node-version-file: ".node-version" | |
- name: Install dependencies | |
run: npm ci | |
- name: Build | |
run: npm run build | |
- name: Cache playwright browsers | |
id: cache-playwright | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/ms-playwright | |
key: cache-playwright-${{ hashFiles('package-lock.json') }} # playwright version is included in package-lock, so this serves as a reasonable cache key | |
- if: ${{ steps.cache-playwright.outputs.cache-hit != 'true' }} | |
name: Install Playwright Browsers | |
run: npx playwright install chromium | |
- name: Grab latest dictionaries from dictionaries branch | |
uses: actions/checkout@v4 | |
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@268677152d06ba59fcec7a7f0b5d961b6ccd7e1e # pin@v2 | |
continue-on-error: true | |
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 | |
workflow_conclusion: success | |
path: test/playwright/__screenshots__/ | |
- name: "[PR] Generate new screenshots & compare against master" | |
id: playwright | |
run: | | |
npx playwright test 2>&1 | tee ./playwright-output || true | |
continue-on-error: true | |
if: github.event_name == 'pull_request' && steps.master-screenshots.outcome != 'failure' | |
- name: "[Push] Generate new authoritative screenshots for master" | |
id: playwright-master | |
run: npx playwright test -u | |
if: github.event_name == 'push' | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: playwright-screenshots | |
path: test/playwright/__screenshots__/ | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: playwright-report | |
path: playwright-report/ | |
- 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' | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: master-screenshots-outcome | |
path: master-screenshots-outcome | |
if: github.event_name == 'pull_request' | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: playwright-output | |
path: playwright-output | |
if: github.event_name == 'pull_request' |