Files
Steven Shriver 7c0c70c7a2 CI: create JUnit artifacts and gate on all tests passing (#1873)
This change wires the `gotestsum` seam into the actual CI and ensures
that all tests _run_ and _pass_ using a new "gate" that verifies the
JUnit artifacts they produce. Specifically, the new gate works as
follows:

1. _registers_ that a test _should_ run and produce an artifact
2. _verifies_ that the artifact was produced and _all_ tests passed
(none were skipped).

The registration phase happens when a test is run in CI and requires
that the test be provided a `E2E_JUNIT_FILE` env variable.

Partial work for #1871

- [x] Tests pass
   ```
  Run make build-junittool
  make build-junittool
  bin/junittool verify -manifest "${ARTIFACTS}/expected-junit.txt"
  shell: /usr/bin/bash -e {0}
  env:
    E2E_ATENET_DATAPLANE: agentgateway
    ARTIFACTS: /home/runner/work/substrate/substrate/_artifacts
go -C tools/junittool build -o
/home/runner/work/substrate/substrate/bin//junittool .
FILE TESTS FAILURES ERRORS SKIPPED
/home/runner/work/substrate/substrate/_artifacts/e2e-gvisor.xml 84 0 0 4
/home/runner/work/substrate/substrate/_artifacts/e2e-microvm.xml 84 0 0
5
/home/runner/work/substrate/substrate/_artifacts/e2e-mitm.xml 1 0 0 0
/home/runner/work/substrate/substrate/_artifacts/e2e-mitm-microvm.xml 1
0 0 0

/home/runner/work/substrate/substrate/_artifacts/e2e-networking-mitm.xml
11 0 0 1

/home/runner/work/substrate/substrate/_artifacts/e2e-networking-mitm-microvm.xml
11 0 0 1
  TOTAL   
  ```
- [x] Appropriate changes to documentation are included in the PR
2026-09-28 22:01:26 +00:00

72 lines
1.2 KiB
Plaintext

# Binaries
/ateapi
/substratectl
/kubectl-ate
/atelet
/bin/
# Python
venv/
.venv/
__pycache__/
*.pyc
# Local environment variables
.ate-dev-env.sh
# Generated scratch directory for benchmark automation
/benchmarking/automation/scratch/
# Test artifacts (JUnit XML, gotestsum JSON). CI writes these into the
# workspace, and hack/verify-all.sh refuses to run against a dirty tree.
/_artifacts/
# Python gRPC clients, generated by benchmarking/locust/codegen/generate.sh
/benchmarking/locust/common/*_pb2.py
/benchmarking/locust/common/*_pb2_grpc.py
# Developers can store local stuff in dirs named __something
__*
# OS artifacts
.DS_Store
Thumbs.db
# Editors and IDEs
.idea/
.vscode/
*.swp
*.swo
*~
# AI IDEs and CLIs
.aider*
.claude/
.cline/
.codex/
.continue/
.copilot/
.cursor/
.gemini/
.goose/
.kiro/
.opencode/
.qwen/
.roo/
.trae/
.windsurf/
# Local worktrees
/.worktrees/
# Stray outputs from `go build` without -o. Root-module tools land at the repo
# root; tools with their own go.mod land beside their source. Use
# `make build-<tool>`, which writes to /bin/ above.
/validate-image-cache
/setup-gcp
/tools/apitool/apitool
/tools/junittool/junittool
# Substrate agent workspace scratchpads
.agents/scratch/