2.8 KiB
Configuration
ReleaseKit reads a JSON profile from <repository>/releasekit.json by default.
The repository directory defaults to the current directory. A relative profile
path is resolved from that repository directory; an absolute path is used as-is.
The current profile fields are:
| Field | Required | Behavior |
|---|---|---|
product |
Yes | Product name used by release operations. |
remote |
No | Selected Git remote; defaults to origin. |
checks |
No | Ordered child commands, each with an argument vector and optional environment map. |
build |
No | Optional main package, binary name, and selected GOOS/GOARCH target strings. |
delivery |
No | Optional Gitea base_url, owner, repository, and token_env settings for tagged-source delivery. |
Each check requires a nonempty args array whose first element names the
executable. Arguments are passed directly to the child process; ReleaseKit does
not parse a shell command string. Select a shell explicitly when a check needs
shell syntax. Each env map overlays the current environment for that child.
The overlay does not modify the ReleaseKit process environment.
Unknown fields are rejected so a setting cannot be silently ignored. The
build object contains main_package, binary_name, and targets. A selected
target requires the package and binary name; each target is written as one
GOOS/GOARCH pair. An omitted or empty target list means no binary work.
The delivery object contains base_url, owner, repository, and optional
token_env. Its values are required when running deliver, but credentials are
not required for check, publish, or build. token_env names the
environment variable containing the Gitea token; it defaults to
RELEASEKIT_GITEA_TOKEN. The CLI reads this variable only for deliver and
passes its value explicitly to the library operation.
The check and publish commands use product, remote, and checks, and
build selected targets after the single validation callback. If checks is
omitted or empty, it runs go test -mod=readonly -count=1 ./... with Go module
and toolchain network access disabled. If checks are configured, they replace
that default and run in order. The build command uses the selected build
settings and writes binaries to dist unless --output selects another path.
The deliver command uses the delivery destination and token, then either
builds selected tagged-source targets into temporary storage or loads verified
assets from the directory selected by --assets. An absent build object or an
empty target set selects page-only delivery.
ReleaseKit's source-only profile is releasekit.json. See the source-only profile and binary profile. The CLI contract lists the currently available command.