From 771233cf944dfc2eb542356c1ec3ac7a68d4e7d5 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 16 Jul 2026 05:29:45 -0700 Subject: [PATCH] perf(ci): trim compact packing cap to 220s for loaded-fleet headroom Fleet-contended runners inflate measured group runtimes ~20-25% over the serial-run hints (bins hit 300-358s on a loaded 12:1xZ run against a 260s packed estimate). A 220s cap keeps the slowest bin near the 5-minute PR wall-clock budget under load at the cost of two extra jobs (24 -> 26). --- scripts/lib/ci-node-test-plan.mjs | 4 +++- test/scripts/ci-node-test-plan.test.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/lib/ci-node-test-plan.mjs b/scripts/lib/ci-node-test-plan.mjs index 22589b4f93be..898942faccc5 100644 --- a/scripts/lib/ci-node-test-plan.mjs +++ b/scripts/lib/ci-node-test-plan.mjs @@ -28,7 +28,9 @@ const GATEWAY_STARTUP_HEALTH_RUNTIME_ENV = { const MAX_BUNDLED_NODE_TEST_PATTERNS = 64; // PR-only bundles trade a little serial work for fewer ephemeral runner registrations. // Keep runner classes and subprocess isolation intact while bounding each combined job. -const COMPACT_NODE_TEST_JOB_SECONDS = 260; +// Fleet-loaded runners inflate measured hints by ~20-25%; a 220s packing cap +// keeps the slowest bin near the 5-minute PR wall-clock budget under load. +const COMPACT_NODE_TEST_JOB_SECONDS = 220; const COMPACT_NODE_TEST_JOB_GROUPS = 10; const COMPACT_TOOLING_NODE_TEST_GROUPS = 4; const COMPACT_WHOLE_NODE_TEST_TIMEOUT_MINUTES = 120; diff --git a/test/scripts/ci-node-test-plan.test.ts b/test/scripts/ci-node-test-plan.test.ts index 3aeab7e50089..c52fba7fb260 100644 --- a/test/scripts/ci-node-test-plan.test.ts +++ b/test/scripts/ci-node-test-plan.test.ts @@ -187,7 +187,7 @@ describe("scripts/lib/ci-node-test-plan.mjs", () => { }); expect(compact.length).toBeGreaterThanOrEqual(12); - expect(compact.length).toBeLessThanOrEqual(24); + expect(compact.length).toBeLessThanOrEqual(28); expect(compact.every((shard) => Array.isArray(shard.groups))).toBe(true); expect(compact.every((shard) => shard.groups.length <= 10)).toBe(true); expect(compact.some((shard) => shard.requiresDist)).toBe(true);