Skip to content

Commit 6e987d8

Browse files
committed
perf(ci): correct pack hints from measured stripe walls
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.
1 parent d023e8b commit 6e987d8

2 files changed

Lines changed: 14 additions & 10 deletions

File tree

scripts/lib/ci-node-test-plan.mjs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,18 @@ const COMPACT_GROUP_SECONDS_HINTS = new Map([
125125
// PTY timing suites still need a lightly packed lane; the exclusive-bin cap
126126
// leaves only trivial co-groups next to this measured runtime.
127127
["core-runtime-tui-pty", 103],
128-
["core-tooling-1", 85],
129-
["core-tooling-2", 112],
130-
["core-tooling-3", 106],
131-
["core-tooling-4", 105],
132-
["core-tooling-isolated", 58],
133-
["core-unit-fast-1", 60],
134-
["core-unit-fast-2", 60],
135-
["core-unit-fast-isolated", 25],
128+
// Stripe walls measured from compact run 29564411446 group timestamps.
129+
["core-tooling-1", 87],
130+
["core-tooling-2", 80],
131+
["core-tooling-3", 82],
132+
["core-tooling-4", 71],
133+
["core-tooling-isolated", 45],
134+
["core-unit-fast-1", 40],
135+
["core-unit-fast-2", 40],
136+
// Fork-per-file isolation parallelizes poorly on 4 vCPU (78.6s measured in
137+
// compact run 29564411446); keep it on the 8 vCPU class where the same
138+
// segment runs ~50s.
139+
["core-unit-fast-isolated", 50],
136140
["core-unit-src-security", 108],
137141
["core-unit-support", 15],
138142
]);
@@ -256,6 +260,7 @@ const KEEP_LARGE_NODE_TEST_RUNNER = new Set([
256260
"core-runtime-media-ui",
257261
"core-unit-fast-1",
258262
"core-unit-fast-2",
263+
"core-unit-fast-isolated",
259264
"core-unit-src-security",
260265
]);
261266
const RELEASE_ONLY_PLUGIN_SHARDS = new Set(["agentic-plugins"]);

test/scripts/ci-node-test-plan.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,10 +242,9 @@ describe("scripts/lib/ci-node-test-plan.mjs", () => {
242242
const jobOf = (name: string) =>
243243
compact.findIndex((shard) => shard.groups.some((group) => group.shard_name === name));
244244
expect(jobOf("agentic-agents-core-runner-embedded")).toBeGreaterThanOrEqual(0);
245+
// Cheap stripes may legally co-locate in one bin; only existence matters.
245246
expect(jobOf("core-unit-fast-1")).toBeGreaterThanOrEqual(0);
246247
expect(jobOf("core-unit-fast-2")).toBeGreaterThanOrEqual(0);
247-
expect(jobOf("core-unit-fast-1")).not.toBe(jobOf("core-unit-fast-2"));
248-
expect(jobOf("agentic-agents-core-runner-embedded")).not.toBe(jobOf("core-unit-fast-1"));
249248
// Spawn/signal-timing suites never mix with regular groups, and every
250249
// compact bin runs serially: overlapping Vitest runs flake timing-
251250
// sensitive tests on both runner classes.

0 commit comments

Comments
 (0)