ci: reduce node runner fanout

This commit is contained in:
Peter Steinberger
2026-04-23 15:25:28 +01:00
parent b4d1992338
commit 6532ee0c39
6 changed files with 83 additions and 22 deletions

View File

@@ -25,13 +25,11 @@ describe("scripts/lib/channel-contract-test-plan.mjs", () => {
task: shard.task,
})),
).toEqual(
["registry", "core"].flatMap((family) =>
suffixes.map((suffix) => ({
checkName: `checks-fast-contracts-channels-${family}-${suffix}`,
runtime: "node",
task: "contracts-channels",
})),
),
suffixes.map((suffix) => ({
checkName: `checks-fast-contracts-channels-${suffix}`,
runtime: "node",
task: "contracts-channels",
})),
);
});
@@ -45,13 +43,11 @@ describe("scripts/lib/channel-contract-test-plan.mjs", () => {
});
it("keeps registry-backed surface shards spread across checks", () => {
for (const shard of createChannelContractTestShards().filter((entry) =>
entry.checkName.includes("-registry-"),
)) {
for (const shard of createChannelContractTestShards()) {
const surfaceRegistryFiles = shard.includePatterns.filter((pattern) =>
pattern.includes("/surfaces-only.registry-backed-shard-"),
);
expect(surfaceRegistryFiles.length).toBeLessThanOrEqual(3);
expect(surfaceRegistryFiles.length).toBeLessThanOrEqual(4);
}
});
});

View File

@@ -25,6 +25,40 @@ function listTestFiles(rootDir: string): string[] {
}
describe("scripts/lib/ci-node-test-plan.mjs", () => {
it("combines the small core unit shards to reduce CI runner fanout", () => {
const coreUnitShards = createNodeTestShards()
.filter((shard) => shard.shardName.startsWith("core-unit-"))
.map((shard) => ({
configs: shard.configs,
requiresDist: shard.requiresDist,
shardName: shard.shardName,
}));
expect(coreUnitShards).toEqual([
{
configs: [
"test/vitest/vitest.unit-fast.config.ts",
"test/vitest/vitest.unit-support.config.ts",
],
requiresDist: false,
shardName: "core-unit-fast-support",
},
{
configs: [
"test/vitest/vitest.unit-src.config.ts",
"test/vitest/vitest.unit-security.config.ts",
],
requiresDist: false,
shardName: "core-unit-src-security",
},
{
configs: ["test/vitest/vitest.unit-ui.config.ts"],
requiresDist: false,
shardName: "core-unit-ui",
},
]);
});
it("names the node shard checks as core test lanes", () => {
const shards = createNodeTestShards();