mirror of
https://github.com/morluto/rea.git
synced 2026-11-14 02:32:54 +00:00
perf(ci): use four Vitest workers on hosted runners (#10399)
Hosted CI jobs own a four-core runner but the suite ran on two workers. Other hosts keep the two-worker bound because they are shared. Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
This commit is contained in:
1 parent
4566e483ab
commit
3403338ea0
2 files changed
+13
-5
No files matched your search
@@ -238,7 +238,8 @@ broad changes or diagnosing CI, rather than after every edit. Package/install
|
||||
changes additionally need package verification; provider changes need actual
|
||||
provider evidence.
|
||||
|
||||
Vitest projects use up to two workers, bounded by host parallelism.
|
||||
Vitest projects use up to two workers, bounded by host parallelism. GitHub
|
||||
Actions jobs own their runner and use up to four.
|
||||
`process-boundary` runs later with serial files because process-tree sampling
|
||||
shares host resources. Acceptance and process-global cases use isolated forks
|
||||
without serial scheduling. Pure domain/service, composition, conformance,
|
||||
@@ -283,7 +284,7 @@ coverage. Ordinary CI also exhausted the former 384 MiB budget after earlier
|
||||
files loaded the shared source/contract graph, while later command registration
|
||||
and schema/help rendering still needed transient allocation space. This is a
|
||||
measured capacity control, not a suite-wide speedup claim. The worker count
|
||||
remains bounded at two, and spawned REA processes retain their own heap settings.
|
||||
remains bounded, and spawned REA processes retain their own heap settings.
|
||||
Coverage enablement still controls instrumentation, test deadlines and coverage
|
||||
thresholds; explicitly disabling it or selecting only a provider does not enable
|
||||
instrumentation.
|
||||
@@ -1102,7 +1103,8 @@ is separate and grows when more shard jobs compete for runners.
|
||||
`process-boundary` stays serial because process-tree sampling shares the host.
|
||||
Raising the worker cap from two to four on this four-core host cut a six-file
|
||||
acceptance sample from 96–101 seconds to 71 seconds and did not remove the
|
||||
single-file floor, so the cap stays two. Full qualification keeps six covered
|
||||
single-file floor. Hosted CI jobs use four workers; other hosts stay at two
|
||||
because they are shared with other checks. Full qualification keeps six covered
|
||||
shards; its longer instrumentation is outside this fast budget.
|
||||
|
||||
The separate `CI timings` workflow batches recent completed CI and Release runs
|
||||
|
||||
+8
-2
@@ -32,8 +32,14 @@ const { options: testOptions } = parseCLI(
|
||||
);
|
||||
const COVERAGE_ENABLED = testOptions.coverage?.enabled === true;
|
||||
const COVERAGE_SHARD = testOptions.shard !== undefined;
|
||||
// Keep local and CI concurrency bounded by the runner rather than command locks.
|
||||
const MAX_TEST_WORKERS = Math.min(2, availableParallelism());
|
||||
// Bound concurrency by the runner rather than command locks. A hosted CI job
|
||||
// owns its whole four-core runner, so it may use every core; other hosts stay
|
||||
// at two workers because developers and agents share them with other checks.
|
||||
const DEDICATED_CI_RUNNER = process.env.GITHUB_ACTIONS === "true";
|
||||
const MAX_TEST_WORKERS = Math.min(
|
||||
DEDICATED_CI_RUNNER ? 4 : 2,
|
||||
availableParallelism(),
|
||||
);
|
||||
|
||||
const TEST_PROJECTS = [...SOURCE_TEST_PROJECTS, ...BUILT_TEST_PROJECTS];
|
||||
const PROJECT_POLICIES = {
|
||||
|
||||
Reference in new issue
Block a user