feat(test): use host-aware local full-suite defaults (#65264)

* feat(test): use host-aware local full-suite defaults

* fix(test): remove undefined local profile host info
This commit is contained in:
Nimrod Gutman
2026-04-12 12:46:20 +03:00
committed by GitHub
parent 913d23c877
commit c247e36664
7 changed files with 334 additions and 112 deletions

View File

@@ -32,6 +32,7 @@ import {
isBoundaryTestFile,
isBundledPluginDependentUnitTestFile,
} from "../test/vitest/vitest.unit-paths.mjs";
import { isCiLikeEnv, resolveLocalFullSuiteProfile } from "./lib/vitest-local-scheduling.mjs";
import { resolveVitestCliEntry, resolveVitestNodeArgs } from "./run-vitest.mjs";
const DEFAULT_VITEST_CONFIG = "test/vitest/vitest.unit.config.ts";
@@ -88,7 +89,6 @@ const UTILS_VITEST_CONFIG = "test/vitest/vitest.utils.config.ts";
const WIZARD_VITEST_CONFIG = "test/vitest/vitest.wizard.config.ts";
const INCLUDE_FILE_ENV_KEY = "OPENCLAW_VITEST_INCLUDE_FILE";
const FS_MODULE_CACHE_PATH_ENV_KEY = "OPENCLAW_VITEST_FS_MODULE_CACHE_PATH";
const DEFAULT_LOCAL_FULL_SUITE_PARALLELISM = 4;
const CHANGED_ARGS_PATTERN = /^--changed(?:=(.+))?$/u;
const VITEST_CONFIG_BY_KIND = {
acp: ACP_VITEST_CONFIG,
@@ -670,7 +670,7 @@ function hasConservativeVitestWorkerBudget(env) {
return workerBudget !== null && workerBudget <= 1;
}
export function resolveParallelFullSuiteConcurrency(specCount, env = process.env) {
export function resolveParallelFullSuiteConcurrency(specCount, env = process.env, hostInfo) {
const override = parsePositiveInt(env.OPENCLAW_TEST_PROJECTS_PARALLEL);
if (override !== null) {
return Math.min(override, specCount);
@@ -678,7 +678,7 @@ export function resolveParallelFullSuiteConcurrency(specCount, env = process.env
if (env.OPENCLAW_TEST_PROJECTS_SERIAL === "1") {
return 1;
}
if (env.CI === "true" || env.GITHUB_ACTIONS === "true") {
if (isCiLikeEnv(env)) {
return 1;
}
if (hasConservativeVitestWorkerBudget(env)) {
@@ -690,7 +690,7 @@ export function resolveParallelFullSuiteConcurrency(specCount, env = process.env
) {
return 1;
}
return Math.min(DEFAULT_LOCAL_FULL_SUITE_PARALLELISM, specCount);
return Math.min(resolveLocalFullSuiteProfile(env, hostInfo).shardParallelism, specCount);
}
function sanitizeVitestCachePathSegment(value) {