mirror of
https://github.com/moltbot/moltbot.git
synced 2026-03-08 06:54:24 +00:00
CI: shard Windows test lane for faster CI critical path (#27234)
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: f7c41089e0
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com>
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com>
Reviewed-by: @joshavant
This commit is contained in:
@@ -160,11 +160,31 @@ const runs = [
|
||||
},
|
||||
];
|
||||
const shardOverride = Number.parseInt(process.env.OPENCLAW_TEST_SHARDS ?? "", 10);
|
||||
const shardCount = isWindowsCi
|
||||
? Number.isFinite(shardOverride) && shardOverride > 1
|
||||
? shardOverride
|
||||
: 2
|
||||
: 1;
|
||||
const configuredShardCount =
|
||||
Number.isFinite(shardOverride) && shardOverride > 1 ? shardOverride : null;
|
||||
const shardCount = configuredShardCount ?? (isWindowsCi ? 2 : 1);
|
||||
const shardIndexOverride = (() => {
|
||||
const parsed = Number.parseInt(process.env.OPENCLAW_TEST_SHARD_INDEX ?? "", 10);
|
||||
return Number.isFinite(parsed) && parsed > 0 ? parsed : null;
|
||||
})();
|
||||
|
||||
if (shardIndexOverride !== null && shardCount <= 1) {
|
||||
console.error(
|
||||
`[test-parallel] OPENCLAW_TEST_SHARD_INDEX=${String(
|
||||
shardIndexOverride,
|
||||
)} requires OPENCLAW_TEST_SHARDS>1.`,
|
||||
);
|
||||
process.exit(2);
|
||||
}
|
||||
|
||||
if (shardIndexOverride !== null && shardIndexOverride > shardCount) {
|
||||
console.error(
|
||||
`[test-parallel] OPENCLAW_TEST_SHARD_INDEX=${String(
|
||||
shardIndexOverride,
|
||||
)} exceeds OPENCLAW_TEST_SHARDS=${String(shardCount)}.`,
|
||||
);
|
||||
process.exit(2);
|
||||
}
|
||||
const windowsCiArgs = isWindowsCi ? ["--dangerouslyIgnoreUnhandledErrors"] : [];
|
||||
const silentArgs =
|
||||
process.env.OPENCLAW_TEST_SHOW_PASSED_LOGS === "1" ? [] : ["--silent=passed-only"];
|
||||
@@ -391,6 +411,9 @@ const run = async (entry) => {
|
||||
if (shardCount <= 1) {
|
||||
return runOnce(entry);
|
||||
}
|
||||
if (shardIndexOverride !== null) {
|
||||
return runOnce(entry, ["--shard", `${shardIndexOverride}/${shardCount}`]);
|
||||
}
|
||||
for (let shardIndex = 1; shardIndex <= shardCount; shardIndex += 1) {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
const code = await runOnce(entry, ["--shard", `${shardIndex}/${shardCount}`]);
|
||||
|
||||
Reference in New Issue
Block a user