From 071d48feb18182fc537e8a4f69e3953f530899ff Mon Sep 17 00:00:00 2001 From: tannevaled Date: Sat, 10 Oct 2026 21:43:25 +0200 Subject: [PATCH] CI: a 100% coverage gate, like every sibling; Linux on all six architectures Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6fa3fa4..de7c8bd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,7 +35,20 @@ jobs: go-version-file: ${{ matrix.module }}/go.mod cache: true - run: go vet ./... - - run: go test -count=1 ./... + - name: test, with coverage + run: go test -count=1 -covermode=set -coverprofile=coverage.out ./... + # Every sibling module gates at 100% and this one had no gate at all, + # though it stood at 100.0% when the gate was added (2026-10-10). Exact, + # no rounding: any function or the total below 100.0% fails. + - name: assert 100% statement coverage + run: | + go tool cover -func=coverage.out + below=$(go tool cover -func=coverage.out | awk '$NF != "100.0%"') + if [ -n "$below" ]; then + echo "::error::coverage below 100% on:" + echo "$below" + exit 1 + fi race: runs-on: ubuntu-latest @@ -70,6 +83,13 @@ jobs: - netbsd - windows goarch: [amd64, arm64] + # The other four 64-bit Linux architectures the fleet ships on, s390x + # among them for its big-endian byte order. Cross-built locally first. + include: + - { module: ., goos: linux, goarch: riscv64 } + - { module: ., goos: linux, goarch: loong64 } + - { module: ., goos: linux, goarch: ppc64le } + - { module: ., goos: linux, goarch: s390x } defaults: run: working-directory: ${{ matrix.module }}