ci: run the logger target lifecycle test under the race detector and document the dev tag

TestDynamicWebhookOutlivesConfigContext (0fa4a8c50) exercises the
goroutine lifecycle of webhook, audit and Kafka targets across a peer
config reload. It ran in CI only in the plain test-cmd job, outside
every race group. Add a race step for it next to the other lifecycle
groups; it takes about 35s locally under -race.

The dev build tag in make test, make install-race and several race
steps selects nothing: no file in this repository or its dependencies
carries a dev build constraint, and kqueue only changes the notify
backend on BSD and macOS. Say so in the Makefile and the workflow
instead of removing the tag, so that the documented command lines keep
working. No other job changes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Feng Ruohang <rh@vonng.com>
This commit is contained in:
Feng Ruohang
2026-11-07 16:08:40 +08:00
parent 479a49b28b
commit f3e84d54a9
2 changed files with 14 additions and 0 deletions
+9
View File
@@ -96,6 +96,12 @@ jobs:
- name: Run multi-pool delete consistency tests under race detector
run: go test -race ./cmd -run '^Test(Pools(Delete|BulkDelete|RetiringCopyPreservesSharedTierObject)|BulkDeleteQuorumEvidence)' -count=1 -timeout=5m
# Build tags: kqueue selects the kqueue backend of rjeczalik/notify on
# BSD and macOS and changes nothing on Linux. dev came with upstream's
# 2024-06 Makefile change for development builds; no file in this
# repository or its dependencies carries a dev build constraint, so it
# selects nothing and is kept only so that the documented command
# lines (make test, make install-race) stay valid.
- name: Run lifecycle expiry and native restore tests under race detector
env:
MINIO_API_REQUESTS_MAX: "10000"
@@ -128,6 +134,9 @@ jobs:
MINIO_API_REQUESTS_MAX: "10000"
run: go test -race -tags kqueue,dev ./cmd ./internal/grid ./internal/ioutil -run '^Test(StorageTimeout|StorageRollback|StoragePrerelease|MaintenancePartialFailedOverwriteAvailability|SingleRequest|WithDeadline)' -count=1 -timeout=5m
- name: Run logger target lifecycle tests under race detector
run: go test -race ./cmd -run '^TestDynamicWebhookOutlivesConfigContext' -count=1 -timeout=5m
- name: Compile deferred consistency diagnostics
run: go test -tags kqueue,dev,consistency_strict ./cmd -run '^$'
+5
View File
@@ -73,6 +73,11 @@ lint-fix: getdeps ## runs golangci-lint suite of linters with automatic fixes
@$(GOLANGCI) run --build-tags kqueue --timeout=10m --config ./.golangci.yml --fix
check: test
# -tags kqueue,dev: kqueue selects the kqueue backend of rjeczalik/notify on
# BSD and macOS (no-op on Linux); dev came with upstream's 2024-06 change for
# development builds and no file in this repository or its dependencies
# carries a dev build constraint, so it selects nothing. Kept for the
# documented command lines; .github/workflows/go.yml carries the same note.
test: verifiers build ## builds Silo, runs linters, tests
@echo "Running unit tests"
@MINIO_API_REQUESTS_MAX=10000 CGO_ENABLED=0 go test -v -tags kqueue,dev ./...