Artifact 83f152aedef66cf02c5e2f8fabc6056f3a55c71b73fc6a979aa8211f32d11749:
- File
.github/workflows/race.yml
— part of check-in
[fdd361b5a9]
at
2026-10-25 23:37:05
on branch main
— ci: run the unit suite under -race; give packages 10m
A Race workflow runs every unit package under the race detector after each merge to main, nightly, and on demand. The full suite passes under -race with no data race reported; it takes several times as long as without, so it does not gate pull requests, which already must be up to date with main to merge. Fossil and zit are not installed there; their interop tests skip, and the Tests workflow runs them.
The unit steps' -timeout is per package binary, and conformance alone takes 130-255s on a hosted runner, so 300s failed it on runner variance. It is now 10m. The dst steps keep 300s. (user: [email protected], size: 1038) [annotate] [blame] [check-ins using] [more...]
name: Race # The unit suite under the race detector. Sync, the content cache and the # checkout observer are used from several goroutines at once, and a data race # there corrupts a repository without failing any ordinary test. The suite # takes several times as long under -race as without, so it runs after each # merge to main and nightly, not as a gate on every pull request, which must # already be up to date with main before it merges. # # Fossil and zit are not installed: the tests that compare against them are # interop checks, which the Tests workflow runs, and skip here. on: push: branches: [main] schedule: - cron: "17 7 * * *" workflow_dispatch: jobs: race: name: Race (modernc) runs-on: ubuntu-latest timeout-minutes: 90 steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Unit tests under -race run: GOWORK=off go test -race $(GOWORK=off go list ./... | grep -v '/dst') -count=1 -timeout=80m