From 33de7593e21de315c9f847aadab0dc8765b45461 Mon Sep 17 00:00:00 2001 From: Maycon Santos Date: Sat, 12 Sep 2026 09:43:38 +0000 Subject: [PATCH] [ci] Summarize the management unit test stream in the Linux workflow Run the Management / Unit tests with go test -json through tools/gotestsummary. A timeout now shows the tests that were still running and the slowest tests per package instead of a goroutine dump that pushes the header out of the job log. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01EsVtbd7MxMVsS9vP1H6KPS --- .github/workflows/golang-test-linux.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/golang-test-linux.yml b/.github/workflows/golang-test-linux.yml index f24dfbe9d..fa0b684b0 100644 --- a/.github/workflows/golang-test-linux.yml +++ b/.github/workflows/golang-test-linux.yml @@ -481,14 +481,20 @@ jobs: if: matrix.store == 'mysql' run: docker pull mlsmaycon/warmed-mysql:8 + # The -json stream goes through tools/gotestsummary so the log shows one + # line per test, the output of failed tests, the head of a timeout panic + # with the still-running tests, and the slowest tests per package. - name: Test + shell: bash run: | + set -o pipefail CGO_ENABLED=1 GOARCH=${{ matrix.arch }} \ NETBIRD_STORE_ENGINE=${{ matrix.store }} \ CI=true \ - go test -tags=devcert -coverprofile=coverage.txt \ + go test -json -tags=devcert -coverprofile=coverage.txt \ -exec "sudo --preserve-env=CI,NETBIRD_STORE_ENGINE" \ - -timeout 20m ./management/... ./shared/management/... + -timeout 20m ./management/... ./shared/management/... \ + | go run ./tools/gotestsummary - name: Upload coverage reports to Codecov if: matrix.arch == 'amd64'