ci: wrap CI test jobs with gotestsum for readable output

What

Wrap go test with gotestsum in the project's own CI test jobs, for readable, grouped console output with an end-of-run summary of failures and the slowest tests.

Converted jobs (invoked as go tool gotestsum --format testname -- <go test flags>):

  • test:integration
  • .redis-integration-base (redis-standalone / -sentinel / -cluster)
  • test:integration:s3-garage
  • test:integration:s3-aws
  • .gcs-realbackend (gcs-key-creds / -instance-creds)
  • .conformance-realbackend (conformance:s3-garage / gcs-key-creds)
  • test:race

Why

go test -v interleaves all output and is hard to scan, especially in the long serial integration suites. gotestsum runs go test -json under the hood, groups output per test, colorizes PASS/FAIL, and always prints a clean failure + slowest-test summary at the end.

How / scope of the change

  • Output-only. All go test flags (-tags, -count, -timeout, -race, -short, -run, -coverprofile) pass through unchanged. Coverage capture (go tool cover -func … | tail -1) and the coverage: regex read the cover output, not go test output, so they behave exactly as before.
  • The redundant -v flag is dropped because gotestsum drives verbosity through --format.
  • gotestsum is pinned through the tool directive in go.mod (checksum-verified via go.sum, Renovate-managed), mirroring the existing go tool gofail. This satisfies the security posture the credentialed jobs already follow (they pin gocover-cobertura rather than use @latest): gotestsum runs as a fixed, checksum-verified version in those same live-credential jobs.

Out of scope (left on plain go test)

  • fuzz:{oci,npm,maven} — emit fuzzing output, not test results; gotestsum's summarizer adds nothing.
  • test:storage-failpoints — a compile-under-gofail check, not a readability case.
  • go_unittests — provided by the golang-build component; its internals are not ours to edit.

Notes

  • No application code changes; the pipeline itself validates the change (no unit tests apply to a CI-config edit).
  • Maintenance/CI toil, so no linked feature issue per the contributing guardrails.

🤖 Generated with Claude Code

Merge request reports

Loading
Loading