ci: adjust test configuration for stability and resource usage

Reduce CI worker count to mitigate resource contention and increase timeouts to prevent flaky failures. Add Node.js memory limit and crash detection to parallel test runner for better error diagnostics.
This commit is contained in:
csa1234 2026-01-26 01:09:16 -03:00
parent 422cd4d48d
commit de6e87074c
2 changed files with 9 additions and 3 deletions

View File

@ -37,6 +37,7 @@ const WARNING_SUPPRESSION_FLAGS = [
"--disable-warning=ExperimentalWarning", "--disable-warning=ExperimentalWarning",
"--disable-warning=DEP0040", "--disable-warning=DEP0040",
"--disable-warning=DEP0060", "--disable-warning=DEP0060",
"--max-old-space-size=4096",
]; ];
const run = (entry) => const run = (entry) =>
@ -54,6 +55,11 @@ const run = (entry) =>
}); });
children.add(child); children.add(child);
child.on("exit", (code, signal) => { child.on("exit", (code, signal) => {
if (signal === 'SIGKILL' || signal === 'SIGABRT' || signal === 'SIGSEGV') {
console.error(`Worker ${entry.name} crashed with signal ${signal} (possible OOM or resource exhaustion)`);
} else if (signal) {
console.warn(`Worker ${entry.name} terminated with signal ${signal}`);
}
children.delete(child); children.delete(child);
resolve(code ?? (signal ? 1 : 0)); resolve(code ?? (signal ? 1 : 0));
}); });

View File

@ -7,7 +7,7 @@ const repoRoot = path.dirname(fileURLToPath(import.meta.url));
const isCI = process.env.CI === "true" || process.env.GITHUB_ACTIONS === "true"; const isCI = process.env.CI === "true" || process.env.GITHUB_ACTIONS === "true";
const isWindows = process.platform === "win32"; const isWindows = process.platform === "win32";
const localWorkers = Math.max(4, Math.min(16, os.cpus().length)); const localWorkers = Math.max(4, Math.min(16, os.cpus().length));
const ciWorkers = isWindows ? 2 : 3; const ciWorkers = isWindows ? 1 : 2;
export default defineConfig({ export default defineConfig({
resolve: { resolve: {
@ -16,8 +16,8 @@ export default defineConfig({
}, },
}, },
test: { test: {
testTimeout: 120_000, testTimeout: 300_000,
hookTimeout: isWindows ? 180_000 : 120_000, hookTimeout: isWindows ? 300_000 : 240_000,
pool: "forks", pool: "forks",
maxWorkers: isCI ? ciWorkers : localWorkers, maxWorkers: isCI ? ciWorkers : localWorkers,
include: [ include: [