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 additional 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 always run
go test -mod=readonly -count=1 ./... with Go module and toolchain network
access disabled. They then run each configured checks command once, in order,
as an additional product check. Selected-target builds run after both. Do not
repeat the standard suite in checks; doing so runs it twice. 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.