mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 11:08:37 +00:00
fix: shard windows ci test runs
This commit is contained in:
@@ -23,6 +23,8 @@ const isCI = process.env.CI === "true" || process.env.GITHUB_ACTIONS === "true";
|
|||||||
const isMacOS = process.platform === "darwin" || process.env.RUNNER_OS === "macOS";
|
const isMacOS = process.platform === "darwin" || process.env.RUNNER_OS === "macOS";
|
||||||
const isWindows = process.platform === "win32" || process.env.RUNNER_OS === "Windows";
|
const isWindows = process.platform === "win32" || process.env.RUNNER_OS === "Windows";
|
||||||
const isWindowsCi = isCI && isWindows;
|
const isWindowsCi = isCI && isWindows;
|
||||||
|
const shardOverride = Number.parseInt(process.env.CLAWDBOT_TEST_SHARDS ?? "", 10);
|
||||||
|
const shardCount = isWindowsCi ? (Number.isFinite(shardOverride) && shardOverride > 1 ? shardOverride : 2) : 1;
|
||||||
const overrideWorkers = Number.parseInt(process.env.CLAWDBOT_TEST_WORKERS ?? "", 10);
|
const overrideWorkers = Number.parseInt(process.env.CLAWDBOT_TEST_WORKERS ?? "", 10);
|
||||||
const resolvedOverride = Number.isFinite(overrideWorkers) && overrideWorkers > 0 ? overrideWorkers : null;
|
const resolvedOverride = Number.isFinite(overrideWorkers) && overrideWorkers > 0 ? overrideWorkers : null;
|
||||||
const parallelRuns = isWindowsCi ? [] : runs.filter((entry) => entry.name !== "gateway");
|
const parallelRuns = isWindowsCi ? [] : runs.filter((entry) => entry.name !== "gateway");
|
||||||
@@ -41,9 +43,11 @@ const WARNING_SUPPRESSION_FLAGS = [
|
|||||||
"--disable-warning=DEP0060",
|
"--disable-warning=DEP0060",
|
||||||
];
|
];
|
||||||
|
|
||||||
const run = (entry) =>
|
const runOnce = (entry, extraArgs = []) =>
|
||||||
new Promise((resolve) => {
|
new Promise((resolve) => {
|
||||||
const args = maxWorkers ? [...entry.args, "--maxWorkers", String(maxWorkers)] : entry.args;
|
const args = maxWorkers
|
||||||
|
? [...entry.args, "--maxWorkers", String(maxWorkers), ...extraArgs]
|
||||||
|
: [...entry.args, ...extraArgs];
|
||||||
const nodeOptions = process.env.NODE_OPTIONS ?? "";
|
const nodeOptions = process.env.NODE_OPTIONS ?? "";
|
||||||
const nextNodeOptions = WARNING_SUPPRESSION_FLAGS.reduce(
|
const nextNodeOptions = WARNING_SUPPRESSION_FLAGS.reduce(
|
||||||
(acc, flag) => (acc.includes(flag) ? acc : `${acc} ${flag}`.trim()),
|
(acc, flag) => (acc.includes(flag) ? acc : `${acc} ${flag}`.trim()),
|
||||||
@@ -61,6 +65,16 @@ const run = (entry) =>
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const run = async (entry) => {
|
||||||
|
if (shardCount <= 1) return runOnce(entry);
|
||||||
|
for (let shardIndex = 1; shardIndex <= shardCount; shardIndex += 1) {
|
||||||
|
// eslint-disable-next-line no-await-in-loop
|
||||||
|
const code = await runOnce(entry, ["--shard", `${shardIndex}/${shardCount}`]);
|
||||||
|
if (code !== 0) return code;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
|
||||||
const shutdown = (signal) => {
|
const shutdown = (signal) => {
|
||||||
for (const child of children) {
|
for (const child of children) {
|
||||||
child.kill(signal);
|
child.kill(signal);
|
||||||
|
|||||||
Reference in New Issue
Block a user