Enable race testing in validation
This commit is contained in:
@@ -8,6 +8,9 @@ result, err := releasekit.Check(ctx, releasekit.ReleaseRequest{
|
||||
RepositoryDir: "/work/project",
|
||||
Product: "Example",
|
||||
Version: "v1.2.3",
|
||||
Validation: releasekit.ValidationSpec{
|
||||
Go: releasekit.GoValidationSpec{Race: true},
|
||||
},
|
||||
AdditionalChecks: func(ctx context.Context, candidate releasekit.Candidate) error {
|
||||
return runProjectChecks(ctx, candidate.RepositoryDir)
|
||||
},
|
||||
@@ -24,14 +27,17 @@ version must be stable `vMAJOR.MINOR.PATCH`. The committed
|
||||
product name and exact version as complete title elements. No local tag with
|
||||
that version may already exist.
|
||||
|
||||
ReleaseKit always runs `go test -mod=readonly -count=1 ./...` with the available
|
||||
compatible local Go toolchain, then calls `AdditionalChecks` once when supplied.
|
||||
It does not download a different toolchain automatically. The standard suite
|
||||
uses the Go host target, disables workspace and module network access, and
|
||||
ignores ambient `GOFLAGS`, experiment, and CPU feature overrides. Effective
|
||||
cache and native cgo/C-tool settings are preserved, including values from Go's
|
||||
persistent environment file. The check revalidates the branch, commit, and
|
||||
cleanliness after validation.
|
||||
ReleaseKit runs one `go test -mod=readonly -count=1 ./...` suite with the
|
||||
available compatible local Go toolchain, then calls `AdditionalChecks` once
|
||||
when supplied. Set `Validation.Go.Race` to run that suite with `-race`; the zero
|
||||
value keeps the ordinary native suite. ReleaseKit does not download a different
|
||||
toolchain automatically. If the race prerequisite is unavailable, the `go-test`
|
||||
check fails rather than being skipped. The suite uses the Go host target,
|
||||
disables workspace and module network access, and ignores ambient `GOFLAGS`,
|
||||
experiment, and CPU feature overrides. Effective cache and native cgo/C-tool
|
||||
settings are preserved, including values from Go's persistent environment
|
||||
file. The check revalidates the branch, commit, and cleanliness after
|
||||
validation.
|
||||
|
||||
A successful check is evidence about the local candidate only. It does not
|
||||
check whether a remote branch or tag is available and does not create a tag.
|
||||
|
||||
@@ -8,6 +8,9 @@ result, err := releasekit.Publish(ctx, releasekit.ReleaseRequest{
|
||||
RepositoryDir: "/work/project",
|
||||
Product: "Example",
|
||||
Version: "v1.2.3",
|
||||
Validation: releasekit.ValidationSpec{
|
||||
Go: releasekit.GoValidationSpec{Race: true},
|
||||
},
|
||||
AdditionalChecks: func(ctx context.Context, candidate releasekit.Candidate) error {
|
||||
return runProjectChecks(ctx, candidate.RepositoryDir)
|
||||
},
|
||||
@@ -20,12 +23,15 @@ fmt.Println(result.Version, result.CandidateCommit, result.TagObject)
|
||||
|
||||
Publication captures a clean candidate on `main`, validates its committed
|
||||
release note, and checks the selected remote before running candidate checks.
|
||||
It always runs `go test -mod=readonly -count=1 ./...` with the available
|
||||
compatible local Go toolchain. It then calls `AdditionalChecks` once when
|
||||
supplied. The standard suite cannot be replaced; move product-specific behavior
|
||||
into `AdditionalChecks` and remove repeated standard-suite commands from custom
|
||||
checks. A failed suite or additional check prevents tag creation, and wrapped
|
||||
errors preserve their causes.
|
||||
It runs one `go test -mod=readonly -count=1 ./...` suite with the available
|
||||
compatible local Go toolchain. Set `Validation.Go.Race` to run that suite with
|
||||
`-race`; its zero value keeps the ordinary native suite. It then calls
|
||||
`AdditionalChecks` once when supplied. The standard suite cannot be replaced;
|
||||
move product-specific behavior into `AdditionalChecks` and remove repeated
|
||||
standard-suite commands from custom checks. A failed suite or additional check
|
||||
prevents tag creation, and wrapped errors preserve their causes.
|
||||
If race prerequisites are unavailable, the selected suite fails as `go-test`
|
||||
instead of silently running without the race detector.
|
||||
|
||||
If `Build` selects targets, ReleaseKit verifies them after the standard suite
|
||||
and additional checks, before creating the tag. The operation then rechecks the
|
||||
|
||||
Reference in New Issue
Block a user