Summary
node-ci.yml@v1 is a single serial install → lint → typecheck → test → build job. It serves the common case well but cannot serve consumers that need sharded tests with merged coverage + threshold enforcement.
ArchonVII/pigafetta (see ArchonVII/pigafetta#1558) wants to consolidate onto the shared workflow, but migrating to v1 as written would regress its CI: lose 4-way test sharding (full suite unsharded risks the 25-min timeout / large slowdown), lose coverage-threshold gating, lose the tsc -b tsbuildinfo cache hook, and force branch-protection check-name churn.
Importantly, pigafetta does not need its doc-only fast lane, science-audit gate, or success-aggregation moved upstream — those stay caller-side. GitHub supports a caller matrix job invoking a reusable workflow, and the caller keeps its own change-detection + audit + ci-success aggregator. The genuine gaps are below.
Requested capabilities (a composable v2, or a dedicated vitest-sharded.yml)
Why composable, not all-in-one
Keep pigafetta-specific change detection (doc-only fast lane), the science-audit drift gate, and the ci-success aggregator in pigafetta. The reusable piece should be the sharded-test + coverage-merge contract only, callable from a caller matrix job. This keeps the shared workflow general while letting the most advanced consumer adopt it without losing capability.
Refs
- Consumer (parked, blocked on this): ArchonVII/pigafetta#1558
- Current pigafetta
ci.yml: sharded test (1–4) + coverage merge job with VITEST_SKIP_THRESHOLDS gating; separate changes (paths-filter), audit, and ci-success jobs.
🤖 Generated with Claude Code
Summary
node-ci.yml@v1is a single serialinstall → lint → typecheck → test → buildjob. It serves the common case well but cannot serve consumers that need sharded tests with merged coverage + threshold enforcement.ArchonVII/pigafetta(see ArchonVII/pigafetta#1558) wants to consolidate onto the shared workflow, but migrating to v1 as written would regress its CI: lose 4-way test sharding (full suite unsharded risks the 25-min timeout / large slowdown), lose coverage-threshold gating, lose thetsc -btsbuildinfo cache hook, and force branch-protection check-name churn.Importantly, pigafetta does not need its doc-only fast lane, science-audit gate, or success-aggregation moved upstream — those stay caller-side. GitHub supports a caller matrix job invoking a reusable workflow, and the caller keeps its own change-detection + audit +
ci-successaggregator. The genuine gaps are below.Requested capabilities (a composable v2, or a dedicated
vitest-sharded.yml)test-shards: 4) runningvitest run --shard=i/N --reporter=blob.vitest --merge-reports) producing one combined coverage report.tsc -btsbuildinfo) keyed independently of the lockfile.Why composable, not all-in-one
Keep pigafetta-specific change detection (doc-only fast lane), the science-audit drift gate, and the
ci-successaggregator in pigafetta. The reusable piece should be the sharded-test + coverage-merge contract only, callable from a caller matrix job. This keeps the shared workflow general while letting the most advanced consumer adopt it without losing capability.Refs
ci.yml: shardedtest (1–4)+coveragemerge job withVITEST_SKIP_THRESHOLDSgating; separatechanges(paths-filter),audit, andci-successjobs.🤖 Generated with Claude Code