ci(tests): cache the Playwright browsers and cap the e2e job - #2743
Conversation
"Install Playwright browsers" hung three times on 2026-08-18, ~30 minutes each, while sibling runs cleared the same step in under two minutes. It is an unguarded network download with no cache and no timeout, and the job inherits the 6h default. An unbounded hang is worse than a failure here. `ci-success` never reports while the job sits there, and content-publish-automerge merges on all-green-of-N `ci-success` runs — a bot-pushed bump branch has exactly one, so N stays 0 and the publish stalls with no error anywhere. Bounding the job turns a silent stall into a red run someone can see. Cache the browser binaries keyed on the Playwright version so most runs skip the download entirely, and install only the apt deps on a cache hit, since the cache holds browsers rather than system packages.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
Included review availability: 3 reviews are currently available. Based on recent review activity, included reviews refill at 5 per hour. 📝 WalkthroughWalkthroughThe E2E workflow now limits job duration, caches Playwright browsers by OS and version, and applies separate conditional installation steps with six-minute timeouts. ChangesE2E workflow controls
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This localized CI change adds browser caching and bounded job timeouts; no actionable merge-blocking risk remains beyond normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Code-analysis diffPainscore total: 7165.5 → 7165.5 (0) |
🧪 UI test report — ✅ all greenSuites
📊 Coverage (unit)
⏱ 10 slowest test cases
|
Summary
Install Playwright browsershung three times on 2026-08-18, ~30 minutes each, while sibling runs cleared the same step in under two minutes. It's an unguarded network download with no cache and no timeout, and the job inherits the 6h default.Why this is more than a nuisance: an unbounded hang means
ci-successnever reports.content-publish-automergemerges on all-green-of-Nci-successruns, and a bot-pushed bump branch has exactly one — so N stays 0 and a content publish stalls with no error anywhere. Bounding the job converts a silent stall into a visible red run.Changes
timeout-minutes: 20on thee2ejob, plus 6 minutes on each install step. Firsttimeout-minutesin this workflow.~/.cache/ms-playwright, keyed on the resolved@playwright/testversion, so most runs skip the download entirely.playwright install-depsonly — the cache holds browser binaries, not the apt packages they link against.Risk
Low, CI-only. Worst case is a cache miss, which is exactly today's behaviour. The one behaviour change to know about: a genuinely slow e2e run now fails at 20 minutes instead of hanging — intended, and well above the ~2 minute norm.
Found while auditing unverified commits (TASK-21002) — unrelated to signing, but it threatens the same pipeline.
Screenshots: N/A (CI only).
Summary by CodeRabbit