diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7988747..3e7ef4a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,10 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest] + # x86-64 and arm64: the reads that take no lock depend on the order in + # which memory is written, which arm64 keeps less of, and the compiler + # inlines differently on each. + os: [ubuntu-latest, ubuntu-24.04-arm] # The oldest release that go.mod allows, and the newest. go: ["1.26.x", stable] steps: @@ -51,7 +54,10 @@ jobs: go-version: ${{ matrix.go }} cache-dependency-path: bench/go.sum - name: Test - run: go test -race -shuffle=on -timeout=5m -coverprofile=coverage.out ./... + # With the race detector and coverage, the slowest package takes about + # four minutes on a typical runner, and a slow runner takes 1.7 times + # as long. + run: go test -race -shuffle=on -timeout=10m -coverprofile=coverage.out ./... - name: Coverage run: go tool cover -func=coverage.out | tail -n 1 - name: Test the benchmarks