diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a2e1162f0fd..073e2cbb2b3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,20 +23,56 @@ jobs: - uses: actions/setup-go@v5 with: go-version: ${{ matrix.go }} + # Install gotestfmt on the VM running the action. - name: Core tests uses: nick-fields/retry@v3 with: + shell: bash max_attempts: 3 timeout_minutes: 20 command: | go mod download - go test -race ./... + go test -json -race ./... -trimpath 2>&1 > gotest.json + - name: Annotate tests + if: ${{ failure() }} + uses: guyarb/golang-test-annotations@v0.8.0 + with: + test-results: gotest.json + - name: Convert test output to junit + shell: bash + if: always() + run: | + go install gotest.tools/gotestsum@latest + $(go env GOPATH)/bin/gotestsum --junitfile report.xml --raw-command cat gotest.json - name: Example tests uses: nick-fields/retry@v3 with: + shell: bash max_attempts: 3 timeout_minutes: 20 command: | cd _examples go mod download - go test -race ./... + go test -json -race ./... -trimpath 2>&1 > ../go_examples_test.json + cd .. + # gotestsum \ + # --junitfile .results/results.xml \ + # --jsonfile .results/results.json \ + # --format testname \ + # -- -coverprofile=.results/cover.out ./... + - name: Convert example test output to junit + if: always() + run: | + go install gotest.tools/gotestsum@latest + $(go env GOPATH)/bin/gotestsum --junitfile go_examples_report.xml --raw-command cat go_examples_test.json + ls -la . + - name: Test summary + id: unit-tests-summary + if: always() + uses: test-summary/action@v2 + with: + show: "all" + # output: $GITHUB_STEP_SUMMARY + paths: | + report.xml + go_examples_report.xml