fa15438e42
Speeds up and de-flakes the unit-test suite: testcontainers booted once per vitest worker (per-test isolation kept only where a test runs background redis work that outlives it), a duration-weighted shard sequencer so each shard does roughly equal work, the slowest suites split, two genuine flakes fixed (`streamBatchItems` shared-redis leak; run-engine waits that relied on fixed sleeps), and transient DockerHub pulls retried. **Timings (CI, per-shard wall):** worst unit-test shard ~771s → ~294s; packages/webapp shards ~250-270s, most internal ~190-240s. All 25 shards green. A shard breaks down as ~70s fixed setup (install / image-pull / generate) + ~70s cold `^build` + the actual container tests. So the remaining cost is mostly the tests themselves plus that fixed setup. **Next (separate, timings):** - **typecheck (~6m24s)** — the slowest check overall; bound by full-graph `tsc`, not the TS version (a TS6 branch is still ~6m17s). The real lever is **tsgo** (the Go compiler). - Possible later: turbo CI caching could trim the ~70s cold build on *warm* runs, but it's conditional (cold runs rebuild anyway) and doesn't touch setup or test time — secondary. `cli-v3` e2e and `sdk-compat` are path-gated (don't run on test-infra changes) and already comfortably fast.
17 lines
399 B
TypeScript
17 lines
399 B
TypeScript
import { defineConfig } from "vitest/config";
|
|
import { DurationShardingSequencer } from "@internal/testcontainers/sequencer";
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
sequence: { sequencer: DurationShardingSequencer },
|
|
include: ["**/*.test.ts"],
|
|
globals: true,
|
|
isolate: true,
|
|
fileParallelism: false,
|
|
testTimeout: 60_000,
|
|
coverage: {
|
|
provider: "v8",
|
|
},
|
|
},
|
|
});
|