👷 ci: Stop Optional Playwright Fonts From Failing E2E (#14852)

`npx playwright install-deps chrome` is the third-most-common e2e failure:
three of the last twenty-five Playwright runs died on it, taking the whole
aggregate gate with them. The step is not installing anything CI needs.

The runner's Chrome is an apt package, so apt has already satisfied every
library Playwright lists — the log shows each one "already the newest version".
All `install-deps` adds are decorative CJK/Thai/Cyrillic font packages, ~21MB
pulled from azure.archive.ubuntu.com by seven jobs on every PR. No CI assertion
depends on them: the only spec that screenshots gates its comparison behind
`E2E_VISUAL_SNAPSHOTS`, which no workflow sets, and no baselines are committed.

Keep the install, but demote it. `google-chrome --version` becomes its own
fatal step so a genuinely missing browser still fails loudly and immediately,
while the font install retries with a per-attempt cap and degrades to a warning.
The Redis install in the list_changed job stays fatal — that one is required.
This commit is contained in:
Danny Avila 2026-08-14 20:35:37 -04:00 committed by GitHub
parent af7e890b14
commit 6f05f2427b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 61 additions and 13 deletions

View file

@ -119,11 +119,14 @@ jobs:
if: steps.cache-client-app.outputs.cache-hit != 'true'
run: npm run build:client
- name: Install Playwright runtime dependencies
timeout-minutes: 5
run: |
google-chrome --version
npx playwright install-deps chrome
- name: Verify Chrome is present
run: google-chrome --version
# Optional fonts only — see the note in playwright-mock.yml's e2e_shards job.
- name: Install optional Playwright font dependencies (best effort)
timeout-minutes: 4
continue-on-error: true
run: .github/scripts/install-playwright-fonts.sh
- name: Run five-minute Bombadil exploration
id: bombadil

View file

@ -141,11 +141,18 @@ jobs:
if: steps.cache-client-app.outputs.cache-hit != 'true'
run: npm run build:client
- name: Install Playwright runtime dependencies
timeout-minutes: 5
run: |
google-chrome --version
npx playwright install-deps chrome
- name: Verify Chrome is present
run: google-chrome --version
# The runner's Chrome is an apt package, so its real library dependencies are
# already satisfied; all `install-deps` adds here are optional CJK/Thai/Cyrillic
# font packages (~21MB from azure.archive.ubuntu.com). Nothing in CI asserts on
# them — visual baselines are opt-in via E2E_VISUAL_SNAPSHOTS — so a stalled
# Ubuntu mirror must never be able to fail the suite.
- name: Install optional Playwright font dependencies (best effort)
timeout-minutes: 4
continue-on-error: true
run: .github/scripts/install-playwright-fonts.sh
- name: Run full mock-LLM Tier-1 e2e
if: matrix.suite == 'full'
@ -225,11 +232,19 @@ jobs:
- name: Build e2e dependencies
run: npm run e2e:prepare
- name: Install Playwright and Redis runtime dependencies
- name: Verify Chrome is present
run: google-chrome --version
# Optional fonts only — see the note in the e2e_shards job.
- name: Install optional Playwright font dependencies (best effort)
timeout-minutes: 4
continue-on-error: true
run: .github/scripts/install-playwright-fonts.sh
# Redis is a hard requirement for this job, so this step stays fatal.
- name: Install Redis runtime dependencies
timeout-minutes: 5
run: |
google-chrome --version
npx playwright install-deps chrome
sudo apt-get update
sudo apt-get install -y redis-server redis-tools