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>
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="" |