Skip to content

Commit 9070901

Browse files
committed
wip(devx): wire --check-drift into the Test Core shard job
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vbw3RPgdtqesx4azk9SbW8
1 parent 2688087 commit 9070901

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,38 @@ jobs:
635635
if-no-files-found: ignore
636636
retention-days: 1
637637

638+
# The durable half of #16173. The summary uploaded above is not only the
639+
# input to the NEXT refresh of scripts/test-shard-timings.json — it is
640+
# this shard measuring itself, right now, against the prediction the
641+
# partition step printed minutes ago. Nothing compared those two numbers,
642+
# and that is the whole defect: the dataset is generated, it rots in one
643+
# direction only (suites get slower, the file stays put), and a shard that
644+
# has drifted heavy reads as perfectly balanced until the job timeout
645+
# kills it. Measured: @objectstack/cli was predicted 458.15s and ran
646+
# 1231.52s — 2.69× — while this job's own max/mean banner read 1.00×.
647+
#
648+
# ⛔ The failure mode being closed is NOT a slow shard. It is that a
649+
# killed shard produces no reading at all while the rollup reads green
650+
# (#16157 remains open on that half), so the cost of letting this rot is a
651+
# PR that lands with a whole shard unmeasured. A comparison that only
652+
# warned would inherit exactly that: something true, printed, and unread.
653+
#
654+
# No `if:` — a suite that already failed must not also be charged with
655+
# drift, and the step is skipped for free when the job is already red. No
656+
# `continue-on-error` either: the point is the red. It sits ABOVE the
657+
# attestation pair for the #6082 reason documented on the upload above —
658+
# anything below that pair can fail a job whose credential already counts
659+
# as a pass — so a drift red also withholds the attestation, which is the
660+
# fail-closed direction.
661+
- name: Check this shard's predicted-vs-measured timing drift
662+
run: |
663+
if ! ls .turbo/runs/*.json > /dev/null 2>&1; then
664+
echo "No turbo run summary — nothing was measured, so there is nothing to compare."
665+
exit 0
666+
fi
667+
node scripts/partition-test-shards.mjs --check-drift .turbo/runs/*.json \
668+
--label "Test Core (${{ matrix.shard }}/6)"
669+
638670
# Runs even when the suite failed — that is when it earns its keep. It
639671
# answers TWO questions about a red suite, and needs both to be able to
640672
# say anything at all about a green one.

0 commit comments

Comments
 (0)