Repository navigation
Retry the Playwright browser install in the e2e job - #551
Conversation
One failed Chromium download from Playwright's CDN failed the e2e job on main before any test ran. Try the install up to three times, 15 seconds apart; a download that fails every time still fails the job. Fixes #550. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Bds4PiJYfNQooN2quaa9Q
Tophat: passedThis PR only changes CI config (
Not UX. It touches Session: https://claude.ai/code/session_01NMyKC7dGX5TJNns3yrqEp9 Generated by Claude Code |
richshaw
left a comment
There was a problem hiding this comment.
Review: passed (round 1)
The PR wraps the e2e job's playwright install --with-deps chromium in three tries, 15 seconds apart, so one failed browser download no longer turns main red. It does that correctly. Under the bash -e that Actions uses, a failure on the left of && doesn't end the step, so a failed try moves on to the next one. A successful try exits 0 at once. After a third failure the step reaches exit 1, so a download that fails every time still fails the job. Only the install retries: migrate, build and the e2e tests are unchanged, as the issue asked. Both items in #550's "Done when" are met, and the PR description says the optional browser cache was left out on purpose.
Blocking (0): none
Optional (1): .github/workflows/ci.yml:108: the optional ~/.cache/ms-playwright cache from #550 would skip most downloads altogether. It was left out on purpose to keep this change small, and isn't worth a round.
Earlier threads: none. Copilot couldn't review (quota used up).
Checks: CI is green on 6fa4ee5 (lint-type-test, e2e, CodeQL). The e2e job ran the new step and installed the browser with it. I read the diff and the whole e2e job at this SHA. The tophat at 6fa4ee5 passed, after running the step's script against stubs for success on the first try, success on the second try and failure every time. No CHANGELOG entry is needed, since it changes nothing for people using OpenSignup or for self-hosters.
Waiting for the owner because it touches .github/workflows/ (high risk). The only thing to read is the 11-line run: block in the e2e job. main is red until this lands or someone re-runs run 39693276269 by hand. While it's red the pipeline merges nothing, and four PRs (#541, #542, #546, #547) are waiting at pipeline:merge.
Session: https://claude.ai/code/session_01VTwD1XAzJGRPcFv7aK2kRo
Generated by Claude Code
Fixes #550.
The problem
CI on
mainwent red at 6599746. Thee2ejob failed atplaywright install --with-deps chromiumbecause one Chromium download from Playwright's CDN failed. No test ran. The step has no retry, so a single bad download turnsmainred, and whilemainis red the pipeline merges nothing.The fix
.github/workflows/ci.yml: the install step is now namedInstall Playwright Chromiumand tries up to three times, 15 seconds apart. Each failed try logs a warning annotation. A download that fails all three times still fails the job.Tests
bash -e(the shell GitHub runs steps in), stubbing the install so it either succeeds on the second try (exit 0) or fails every time (exit 1, after three tries).pnpm lint && pnpm typecheck && pnpm knip && pnpm testpass (1305 tests).e2ejob runs the new step.This touches
.github/workflows/, so it waits for the owner before merging.Generated by Claude Code