perf(ci): correct pack hints from measured stripe walls (#109899)

Group walls measured from compact run 29564411446 (post-#109769):
core-unit-fast-isolated runs 78.6s on 4 vCPU because fork-per-file
isolation parallelizes poorly there; pin it to the 8 vCPU class where
the same segment runs ~50s. Unit-fast stripes measure ~25-37s (hinted
100/60) and tooling stripes 71-87s; refresh both so the packer stops
overfilling small bins (the 299s compact tail this run produced).
Cheap stripes may now co-locate in one bin, so the compact test only
requires their presence.
This commit is contained in:
Peter Steinberger
2026-07-17 11:07:59 +01:00
committed by GitHub
parent f82511762f
commit 4880231ff7
2 changed files with 14 additions and 10 deletions

View File

@@ -125,14 +125,18 @@ const COMPACT_GROUP_SECONDS_HINTS = new Map([
// PTY timing suites still need a lightly packed lane; the exclusive-bin cap
// leaves only trivial co-groups next to this measured runtime.
["core-runtime-tui-pty", 103],
["core-tooling-1", 85],
["core-tooling-2", 112],
["core-tooling-3", 106],
["core-tooling-4", 105],
["core-tooling-isolated", 58],
["core-unit-fast-1", 60],
["core-unit-fast-2", 60],
["core-unit-fast-isolated", 25],
// Stripe walls measured from compact run 29564411446 group timestamps.
["core-tooling-1", 87],
["core-tooling-2", 80],
["core-tooling-3", 82],
["core-tooling-4", 71],
["core-tooling-isolated", 45],
["core-unit-fast-1", 40],
["core-unit-fast-2", 40],
// Fork-per-file isolation parallelizes poorly on 4 vCPU (78.6s measured in
// compact run 29564411446); keep it on the 8 vCPU class where the same
// segment runs ~50s.
["core-unit-fast-isolated", 50],
["core-unit-src-security", 108],
["core-unit-support", 15],
]);
@@ -256,6 +260,7 @@ const KEEP_LARGE_NODE_TEST_RUNNER = new Set([
"core-runtime-media-ui",
"core-unit-fast-1",
"core-unit-fast-2",
"core-unit-fast-isolated",
"core-unit-src-security",
]);
const RELEASE_ONLY_PLUGIN_SHARDS = new Set(["agentic-plugins"]);

View File

@@ -242,10 +242,9 @@ describe("scripts/lib/ci-node-test-plan.mjs", () => {
const jobOf = (name: string) =>
compact.findIndex((shard) => shard.groups.some((group) => group.shard_name === name));
expect(jobOf("agentic-agents-core-runner-embedded")).toBeGreaterThanOrEqual(0);
// Cheap stripes may legally co-locate in one bin; only existence matters.
expect(jobOf("core-unit-fast-1")).toBeGreaterThanOrEqual(0);
expect(jobOf("core-unit-fast-2")).toBeGreaterThanOrEqual(0);
expect(jobOf("core-unit-fast-1")).not.toBe(jobOf("core-unit-fast-2"));
expect(jobOf("agentic-agents-core-runner-embedded")).not.toBe(jobOf("core-unit-fast-1"));
// Spawn/signal-timing suites never mix with regular groups, and every
// compact bin runs serially: overlapping Vitest runs flake timing-
// sensitive tests on both runner classes.