ci: cache exact Playwright browser downloads - #10
Conversation
Restore browser binaries for test-all using a runner-, architecture-, lock-, and installer-specific key. Save caches only after successful default-branch pushes so pull requests cannot create large merge-ref caches. Bound reusable consumer jobs to 60 minutes. Cache misses remain valid and Linux continues installing its required host dependencies. Co-Authored-By: Codex Desktop 26.810.52044 (runtime codex-cli 0.148.0-alpha.9) / gpt-5.6-sol <codex@openai.com> Codex-Reasoning-Effort: ultra
Exclude Playwright absolute-path link metadata from the portable browser cache and include every browser-selection input in its exact key. Restore after the frozen Pixi environment is ready while preserving the default-branch-only cache publication boundary. Co-Authored-By: Codex Desktop 26.810.52044 (runtime codex-cli 0.148.0-alpha.9) / gpt-5.6-sol <codex@openai.com> Codex-Reasoning-Effort: ultra
Allow cache restore and save failures to fall back to the normal locked browser installation path. Bound cache-segment downloads to five minutes so a slow cache cannot replace the existing network behavior with another stall. Co-Authored-By: Codex Desktop 26.810.52044 (runtime codex-cli 0.148.0-alpha.9) / gpt-5.6-sol <codex@openai.com> Codex-Reasoning-Effort: ultra
Configure finite apt retries and 30-second HTTP and HTTPS timeouts before browser-bearing test-all runs. This keeps required Linux host dependency installation while preventing a silent mirror request from consuming the unbounded job default. Co-Authored-By: Codex Desktop 26.810.52044 (runtime codex-cli 0.148.0-alpha.9) / gpt-5.6-sol <codex@openai.com> Codex-Reasoning-Effort: ultra
|
AI-generated draft — not reviewed by John The cancelled consumer Linux log now isolates the original stall. Chromium and This PR now addresses both resource boundaries:
The final exact head is The cache and apt behavior itself still needs one downstream execution after |
AI-generated draft — not reviewed by John
Summary
test-allusing an exact cache keythe macOS compatibility installer in that key
a successful default-branch push
Rationale
Consumer PR #15 exposed an unbounded Linux stall during
playwright install --with-deps webkit. Playwright notes that restoring browserbinaries may take about as long as downloading them, and Linux host packages
still cannot be cached. This change is therefore deliberately conservative:
it reduces repeated CDN traffic without making cache availability part of the
correctness contract.
The cache has no fallback keys and no cross-OS reuse. Pull requests cannot
publish merge-ref-scoped browser caches, which avoids duplicating hundreds of
megabytes for every review branch. Cache misses continue through the existing
locked installation path.
The 60-minute job bound does not diagnose the current stall, but prevents a
browser or package-manager hang from consuming GitHub's six-hour default.
Verification
pixi run test— 50 engine and 40 development testspixi run check-formatgit diff --checkFollow-up
The terminal Linux log from consumer PR #15 should determine whether the
WebKit operation is blocked in apt host dependencies or browser download. If
needed, a separate template change can split those phases for clearer timing;
this PR does not weaken
--with-depsor browser coverage.