test: introduce planner-backed test runner, stabilize local builds (#54650)

* test: stabilize ci and local vitest workers

* test: introduce planner-backed test runner

* test: address planner review follow-ups

* test: derive planner budgets from host capabilities

* test: restore planner filter helper import

* test: align planner explain output with execution

* test: keep low profile as serial alias

* test: restrict explicit planner file targets

* test: clean planner exits and pnpm launch

* test: tighten wrapper flag validation

* ci: gate heavy fanout on check

* test: key shard assignments by unit identity

* ci(bun): shard vitest lanes further

* test: restore ci overlap and stabilize planner tests

* test: relax planner output worker assertions

* test: reset plugin runtime state in optional tools suite

* ci: split macos node and swift jobs

* test: honor no-isolate top-level concurrency budgets

* ci: fix macos swift format lint

* test: cap max-profile top-level concurrency

* ci: shard macos node checks

* ci: use four macos node shards

* test: normalize explain targets before classification
This commit is contained in:
Tak Hoffman
2026-03-25 18:11:58 -05:00
committed by GitHub
parent 764394c78b
commit ab37d8810d
19 changed files with 3243 additions and 1721 deletions

View File

@@ -1,8 +1,8 @@
import os from "node:os";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vitest/config";
import { pluginSdkSubpaths } from "./scripts/lib/plugin-sdk-entries.mjs";
import { resolveLocalVitestMaxWorkers } from "./scripts/test-planner/runtime-profile.mjs";
import {
behaviorManifestPath,
unitMemoryHotspotManifestPath,
@@ -10,10 +10,12 @@ import {
} from "./scripts/test-runner-manifest.mjs";
import { loadVitestExperimentalConfig } from "./vitest.performance-config.ts";
export { resolveLocalVitestMaxWorkers };
const repoRoot = path.dirname(fileURLToPath(import.meta.url));
const isCI = process.env.CI === "true" || process.env.GITHUB_ACTIONS === "true";
const isWindows = process.platform === "win32";
const localWorkers = Math.max(4, Math.min(16, os.cpus().length));
const localWorkers = resolveLocalVitestMaxWorkers();
const ciWorkers = isWindows ? 2 : 3;
export default defineConfig({
resolve: {
@@ -48,6 +50,10 @@ export default defineConfig({
"pnpm-lock.yaml",
"test/setup.ts",
"scripts/test-parallel.mjs",
"scripts/test-planner/catalog.mjs",
"scripts/test-planner/executor.mjs",
"scripts/test-planner/planner.mjs",
"scripts/test-planner/runtime-profile.mjs",
"scripts/test-runner-manifest.mjs",
"vitest.channel-paths.mjs",
"vitest.channels.config.ts",