Add local candidate validation
This commit is contained in:
34
docs/consumers/check.md
Normal file
34
docs/consumers/check.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user