improve: cut CI critical path without more workers (#121807)

* test(ci): remove redundant builds from critical path

Amp-Thread-ID: https://ampcode.com/threads/T-019fee8d-665d-707b-a380-23f2a6a1ce03
Co-authored-by: Peter Steinberger <steipete@gmail.com>

* docs(ci): format runner table

Amp-Thread-ID: https://ampcode.com/threads/T-019fee8d-665d-707b-a380-23f2a6a1ce03
Co-authored-by: Peter Steinberger <steipete@gmail.com>

---------

Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
Peter Steinberger
2026-08-10 20:21:20 -07:00
committed by GitHub
parent efe5d8d76e
commit ebfd3ba154
16 changed files with 77 additions and 147 deletions
+8 -8
View File
@@ -98,11 +98,10 @@ const COMPACT_EMBEDDED_GROUP_NAMES = [
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.
// The group hints below are loaded-fleet CI walls. The 190s cap forbids
// pairings like core-runtime-media-ui (124) +
// core-unit-src-security (95) that produced a 195s real-wall straggler bin
// while the pack sat at ~160s; ~3 extra bins buy ~30-40s of run wall.
const COMPACT_NODE_TEST_JOB_SECONDS = 190;
// The group hints below are loaded-fleet CI walls. The 220s cap keeps the
// established 24-worker compact matrix after refreshing underestimated groups;
// expanded composite groups are then striped evenly across those jobs.
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;
@@ -116,6 +115,7 @@ const UNIT_FAST_NODE_TEST_STRIPES = 2;
// dropping cache-warm/contention outliers outside [median/1.5, median*1.5].
// Packing only: a stale entry skews job balance but never correctness.
// Unknown shards fall back to a per-file estimate.
// Four outlier hints were refreshed from child-process walls in run 31450296338.
const COMPACT_GROUP_SECONDS_HINTS = new Map<string, number>([
["agentic-agents-core-auth", 27],
["agentic-agents-core-isolated", 9],
@@ -133,7 +133,7 @@ const COMPACT_GROUP_SECONDS_HINTS = new Map<string, number>([
["agentic-agents-core-runner-commands", 27],
["agentic-agents-core-runner-embedded", 20],
["agentic-agents-core-runner-sessions", 13],
["agentic-agents-core-runtime", 79],
["agentic-agents-core-runtime", 130],
["agentic-agents-core-subagents", 32],
["agentic-agents-core-tools", 52],
// The composite hint sets the existing job count before its independent
@@ -179,7 +179,7 @@ const COMPACT_GROUP_SECONDS_HINTS = new Map<string, number>([
["auto-reply-core-top-level", 30],
["auto-reply-reply-agent-runner", 40],
["auto-reply-reply-commands-1", 24],
["auto-reply-reply-commands-2", 10],
["auto-reply-reply-commands-2", 18],
["auto-reply-reply-commands-3", 12],
["auto-reply-reply-dispatch", 40],
["auto-reply-reply-session", 19],
@@ -212,7 +212,7 @@ const COMPACT_GROUP_SECONDS_HINTS = new Map<string, number>([
["core-tooling-4", 125],
["core-tooling-isolated", 49],
["core-unit-fast-1", 41],
["core-unit-fast-2", 35],
["core-unit-fast-2", 92],
// Fork-per-file isolation parallelizes poorly on 4 vCPU; keep it on the
// 8 vCPU class, where it still runs a measured ~90s under fleet load.
["core-unit-fast-isolated", 90],