Files
ReleaseKit/docs/config.md

2.0 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.

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 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.

ReleaseKit's source-only publication profile is releasekit.json. See the source-only profile and binary profile. The CLI contract lists the currently available command.