35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
# Local candidate check
|
|
|
|
Use `releasekit.Check` to verify a candidate against the current local
|
|
repository state:
|
|
|
|
```go
|
|
result, err := releasekit.Check(ctx, releasekit.ReleaseRequest{
|
|
RepositoryDir: "/work/project",
|
|
Product: "Example",
|
|
Version: "v1.2.3",
|
|
Validate: func(ctx context.Context, candidate releasekit.Candidate) error {
|
|
return runProjectChecks(ctx, candidate.RepositoryDir)
|
|
},
|
|
})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
fmt.Println(result.Version, result.Commit)
|
|
```
|
|
|
|
The repository must have a clean index and worktree on `main`, and the selected
|
|
version must be stable `vMAJOR.MINOR.PATCH`. The committed
|
|
`docs/releases/<version>.md` note must have a first Markdown H1 containing the
|
|
product name and exact version as complete title elements. No local tag with
|
|
that version may already exist.
|
|
|
|
The callback receives the captured repository, commit, and version. ReleaseKit
|
|
calls it once. When omitted, ReleaseKit runs the offline Go test command. 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.
|
|
The [`check` command](../cli.md) reads the product and optional validation
|
|
commands from `releasekit.json`.
|