carlos / platform Public

gate: run the end-to-end witnesses (go test -tags e2e ./internal/e2e/...)

The e2e-tagged packages are outside go list ./... and so outside every
existing step. The gate now lists ./internal/e2e/selfserve under the tag
(a listing with no test fails it), then runs go test -tags e2e and go vet
-tags e2e over ./internal/e2e/... as two jobs beside the rest, timed like
every other job.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 2a26850727316e3fe1f262ea7bcf37e4ab87b678 parent 00edb89
1 file changed, +16 −0
  • .amadan/test-gate.sh +16 −0
diff --git a/.amadan/test-gate.sh b/.amadan/test-gate.sh
index f1f02c9cd..e339048ce 100755
--- a/.amadan/test-gate.sh
+++ b/.amadan/test-gate.sh
@@ -227,6 +227,22 @@ for spec in $TEST_SPLIT; do
fi
done
+# The end-to-end witnesses (internal/e2e/..., build tag e2e) are outside
+# `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
+# with nothing run.
+if ! discover go test -count=1 -tags e2e -list '.*' ./internal/e2e/selfserve >"$out/list-e2e.raw" 2>&1; then
+ cp "$out/list-e2e.raw" "$out/e2e.log"
+ fail_job e2e "could not list the tests in ./internal/e2e/selfserve (-tags e2e)"
+elif ! grep -q '^Test' "$out/list-e2e.raw"; then
+ cp "$out/list-e2e.raw" "$out/e2e.log"
+ fail_job e2e "go test -tags e2e -list found no tests in ./internal/e2e/selfserve, which is not believable"
+else
+ start e2e go test -count=1 -timeout 30m -tags e2e ./internal/e2e/...
+fi
+start e2e-vet go vet -tags e2e ./internal/e2e/...
+
wait
started=""