ci: balance shards and reuse pr artifacts

This commit is contained in:
Peter Steinberger
2026-03-24 04:18:58 +00:00
parent 26365f7daf
commit 1bfef17825
6 changed files with 1305 additions and 30 deletions

View File

@@ -2,6 +2,7 @@ import { describe, expect, it } from "vitest";
import {
dedupeFilesPreserveOrder,
packFilesByDuration,
packFilesByDurationWithBaseLoads,
selectMemoryHeavyFiles,
selectTimedHeavyFiles,
selectUnitHeavyFileGroups,
@@ -133,4 +134,21 @@ describe("packFilesByDuration", () => {
["src/b.test.ts", "src/c.test.ts"],
]);
});
it("accounts for existing shard load when packing new work", () => {
const durationByFile = {
"src/a.test.ts": 100,
"src/b.test.ts": 90,
"src/c.test.ts": 20,
} satisfies Record<string, number>;
expect(
packFilesByDurationWithBaseLoads(
Object.keys(durationByFile),
3,
(file) => durationByFile[file] ?? 0,
[0, 200, 10],
),
).toEqual([["src/a.test.ts", "src/c.test.ts"], [], ["src/b.test.ts"]]);
});
});