Repository navigation
ci: Cut CI cost and fix the most common flakes - #25668
Merged
Merged
Conversation
This was referenced Oct 22, 2026
The scenarios run through tsx, which strips types without checking them, so the TypeScript version installed by use-ts-5_0.js does not change what these jobs test. TS 5.0 type compatibility is covered by the generic-ts5.0 E2E app. Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com> (cherry picked from commit fddfba2) Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
The Prisma suites install prisma into a tmp dir in their beforeAll hook. Its postinstall downloads about 34 MB of engines into ~/.cache/prisma, which is not on the cache volume, so every shard downloads them again. Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com> (cherry picked from commit 6552911) Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
`playwright install --with-deps` names system libraries that the runner image already has, so apt-get upgrades them to the latest Ubuntu update. That is half of the download when the apt cache is cold. Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com> (cherry picked from commit b5c8b16) Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
…e click The click detector stored the time from the click to the next mutation or scroll, and then checked that value for truthiness. When both happened in the same millisecond the value was 0, so the click was reported as a slow click even though the page reacted right away. This also made the 'immediate mutation does not trigger slow click' browser integration test flaky: it failed in 7 of the 18 recent first-attempt runs that were sampled. Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
…tly shorter Node timers can fire up to a millisecond early, and the span measured 0.1996 s in two recent CI runs. Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
Most 'Build E2E app' failures in recent runs were the 7-minute timeout, hit while pnpm downloaded a single tarball (next, workerd, @next/swc) at tens of kB/s. In the same jobs apt downloaded at 20-40 MB/s, so the runner's network was fine. pnpm does not give up on a slow download, so install first with a time limit and try again with new connections. Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
Both checks ran a few seconds of work on their own runner, after the same checkout, build artifact download and pnpm install that Lint does. Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
It was the only workflow that runs on every push to a pull request without a concurrency group. The others either have one already or run once per pull request (opened, closed), where it would not cancel anything. Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
sentry-junior
Bot
force-pushed
the
ci/faster-and-less-flaky
branch
from
October 22, 2026 18:21
9c10044 to
31d5095
Compare
sentry-junior
Bot
changed the base branch from
develop
to
ci/e2e-small-runners
October 22, 2026 18:24
joshuarli
marked this pull request as ready for review
October 22, 2026 18:27
joshuarli
requested review from
Lms24,
andreiborza,
isaacs and
logaretm
and removed request for
a team
October 22, 2026 18:27
joshuarli
approved these changes
Oct 22, 2026
Contributor
Optional E2E testsSome optional checks were not successful. They do not block the merge. 3 failing, 59 successful. See the run.
Successful checks
|
Contributor
size-limit report 📦Compared: bcae79b (PR test merge using develop at 40eff80) Against: 40eff80 (develop) · base run #63186 ✅ Baseline matches: this diff contains only this PR's changes.
|
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.
Stacked on #25667 (2 vCPU runners for short E2E jobs). This combines the other cheap CI fixes into one PR, so a full CI run is paid only once. It supersedes #25664, #25665 and #25666. Each commit stands on its own, so any of them can be dropped or split out.
Cost and duplicate work
tsx, which doesn't type-check, and thegeneric-ts5.0E2E app already covers TS 5.0 types..d.tschecks insideLintinstead of on two runners of their own, which each repeated the checkout, artifact download and install. The.d.tscheck wasn't required before. InsideLintit now blocks merging.--with-depsfrom upgrading 24 apt packages the runner already has.Enforce License Complianceruns. It was the only workflow that runs on every PR push without a concurrency group. The rest already have one or run once per PR (opened,closed), where it wouldn't cancel anything.Flakes (from 18 recent first-attempt runs of
build.yml, every one of which failed)replay/slowClick/mutation› "immediate mutation does not trigger slow click" failed in 7 of the 18 runs, and it's a real SDK bug. When the mutation lands in the same millisecond as the click,mutationAfteris0, the truthiness check reads that as "no mutation", and the click is reported as a dead click. Same for scroll. Thefix(replay)commit should get a changelog entry, or be split out if you'd rather ship it separately. Related: [Flaky CI]: Playwright Tests - suites/replay/slowClick/mutation/test.ts › immediate mutation does not trigger slow click #24656.Build E2E appfailures were the 7-minute timeout, hit while pnpm downloaded one big tarball (next, workerd, @next/swc) at tens of kB/s. In the same jobs apt downloaded at 20–40 MB/s. E2E jobs now install with a 150 s limit and retry, so the second attempt opens new connections and reuses the store. This is a mitigation, not a root-cause fix.aws-serverless-layermeasured the 200 ms callback span as 0.1996 s twice. The threshold is now 0.19.Still open: Prisma
beforeAlltimeouts (120 s) are the main Node and Bun integration flake. They don't reproduce locally, where the install and generate take about 5 s.via @joshuarli.
--
View Junior Session [Sentry]