gate: the e2e witnesses run after every other job, in two shards
Five CI runs on this branch died without gate output (three 30-minute timeouts, then two terminations once the witnesses were sharded four ways). The witnesses each run two boxes and a console in one process; beside eight console shards they tipped the runner over. They now start when the other jobs have finished, two shards, under ten minutes alone.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1 file changed,
+11
−2
.amadan/test-gate.sh+11 −2
CI cancelled — superseded by a newer push — run details
diff --git a/.amadan/test-gate.sh b/.amadan/test-gate.sh| index 32b40a675..c85bcdda4 100755 |
| --- a/.amadan/test-gate.sh |
| +++ b/.amadan/test-gate.sh |
| @@ -227,7 +227,16 @@ for spec in $TEST_SPLIT; do |
| fi |
| done |
| + |
| +wait |
| + |
| # The end-to-end witnesses (internal/e2e/..., build tag e2e) are outside |
| +# `go list ./...`. They start only once every other job has finished: |
| +# each witness runs two boxes and a console in one process, and when |
| +# they ran beside the console shards the runner killed the gate (five |
| +# runs on 2026-10-23: three bare 30-minute timeouts, two terminations). |
| +# Alone they take under ten minutes across two shards. |
| +# Historical note replaced the sentence below. |
| # `go list ./...` and so outside every step above: their own vet and test |
| # run here, beside the rest. Discovery first, as for the split packages: a |
| # witness package that lists no test fails the gate rather than passing |
| @@ -246,10 +255,10 @@ else |
| # whose pattern matches nothing fails the gate. |
| grep -E '^Test' "$out/list-e2e.raw" | sort -u >"$out/list-e2e" || true |
| listed=$(wc -l <"$out/list-e2e") |
| - awk -v n="${E2E_SHARDS:-4}" '{ print (NR - 1) % n "\t" $0 }' "$out/list-e2e" >"$out/deal-e2e" |
| + awk -v n="${E2E_SHARDS:-2}" '{ print (NR - 1) % n "\t" $0 }' "$out/list-e2e" >"$out/deal-e2e" |
| i=0 |
| launched=0 |
| - while [ "$i" -lt "${E2E_SHARDS:-4}" ]; do |
| + while [ "$i" -lt "${E2E_SHARDS:-2}" ]; do |
| pattern=$(awk -v i="$i" -F '\t' '$1 == i { printf "%s%s", sep, $2; sep = "|" }' "$out/deal-e2e") |
| if [ -n "$pattern" ]; then |
| start "e2e@$i" go test -count=1 -timeout 30m -tags e2e -run "^($pattern)\$" ./internal/e2e/selfserve |