ci(browser-test): cache Playwright browsers + retry install#3296
Draft
kriskowal wants to merge 5 commits into
Draft
ci(browser-test): cache Playwright browsers + retry install#3296kriskowal wants to merge 5 commits into
kriskowal wants to merge 5 commits into
Conversation
Cache Playwright browser binaries between runs, keyed on the browser-test lockfile so a resolved Playwright version bump invalidates the cache. Wrap the browser install in a 3-attempt retry to ride out transient Chromium-CDN download timeouts after a version bump.
|
3 tasks
kriskowal
pushed a commit
to kriskowal/garden
that referenced
this pull request
Jun 3, 2026
… (pin dropped; trailers clean)
kriscendobot
pushed a commit
to endojs/endo-but-for-bots
that referenced
this pull request
Jun 3, 2026
Upstream endojs/endo#3296 (the mirror of this PR) is still hitting the 30-minute job ceiling on the cold-cache run. The retry budget alone is 3 attempts x 10 minutes = 30 minutes worst-case install, which leaves no headroom for setup, build, or the tests themselves. Bump `timeout-minutes` from 30 to 60 and the retry's `timeout_minutes` from 10 to 15. Worst-case install becomes 3 x 15 = 45 minutes, fitting inside the 60-minute job ceiling with room for the rest of the workflow. Once the cache is populated this is dead weight; on a cold-cache run (Playwright version bump invalidates the cache) it is what keeps the job from timing out before tests start.
kriskowal
pushed a commit
to kriskowal/garden
that referenced
this pull request
Jun 3, 2026
…onto endojs/endo#3296 (timeout bump; no force-push)
kriskowal
pushed a commit
to kriskowal/garden
that referenced
this pull request
Jun 3, 2026
kriscendobot
pushed a commit
to endojs/endo-but-for-bots
that referenced
this pull request
Jun 4, 2026
Upstream endojs/endo#3296 (the mirror of this PR) is still hitting the 30-minute job ceiling on the cold-cache run. The retry budget alone is 3 attempts x 10 minutes = 30 minutes worst-case install, which leaves no headroom for setup, build, or the tests themselves. Bump `timeout-minutes` from 30 to 60 and the retry's `timeout_minutes` from 10 to 15. Worst-case install becomes 3 x 15 = 45 minutes, fitting inside the 60-minute job ceiling with room for the rest of the workflow. Once the cache is populated this is dead weight; on a cold-cache run (Playwright version bump invalidates the cache) it is what keeps the job from timing out before tests start.
kriskowal
pushed a commit
to kriskowal/garden
that referenced
this pull request
Jun 4, 2026
…2) onto endojs/endo#3296 (maintainer: obviate #3254)
kriskowal
pushed a commit
to kriskowal/garden
that referenced
this pull request
Jun 4, 2026
…js/endo#3296 (obviates #3254 per maintainer)
kriskowal
pushed a commit
to kriskowal/garden
that referenced
this pull request
Jun 4, 2026
kriskowal
pushed a commit
to kriskowal/garden
that referenced
this pull request
Jun 4, 2026
…mmit onto endojs/endo#3296 (4 commits)
kriskowal
pushed a commit
to kriskowal/garden
that referenced
this pull request
Jun 4, 2026
…aywright install time
kriskowal
pushed a commit
to kriskowal/garden
that referenced
this pull request
Jun 4, 2026
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The
browser-testjob intermittently times out while downloading the Chromium binary from the Playwright CDN, most often right after a Chromium version bump lands before the CDN has finished seeding the new binary. This adds resilience to that step.The job now caches
~/.cache/ms-playwrightkeyed on the browser-test lockfile, so a resolved Playwright version bump invalidates the cache on the commit that lands it and any other commit reuses the previously downloaded binaries. The browser install is wrapped in a 3-attempt retry so a single transient CDN download timeout no longer fails the run.It also pins
@playwright/testto an exact1.58.2. The floating range had been resolving to versions whose Chromium binary downloads from a single-host CDN that runs slow enough to exceed the install timeout, and retrying the same URL yields the same result. 1.58.2 routes browser downloads through mirrored CDNs with failover, which removes the single-mirror failure mode; the exact pin also keeps the lockfile cache key stable so a single cold-cache install per branch is the worst case.Security Considerations
None. The change only affects how CI provisions browser binaries; it introduces no new authorities and no change to component boundaries.
Scaling Considerations
Reduces CI resource consumption on the common path: cache hits skip the multi-hundred-megabyte browser download entirely.
Documentation Considerations
None. No user-facing or downstream behavior changes.
Testing Considerations
CI-only change; the existing browser-test suite exercises it. No new unit tests are warranted.
Compatibility Considerations
None. No usage patterns change.
Upgrade Considerations
None. No production systems are affected.