32 lines
1.5 KiB
Markdown
32 lines
1.5 KiB
Markdown
# 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. |
|
|
|
|
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. Build and
|
|
delivery fields will be added when those operations are implemented. The `check`
|
|
and `publish` commands use `product`, `remote`, and `checks`. 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.
|
|
|
|
ReleaseKit's source-only publication profile is
|
|
[releasekit.json](../releasekit.json).
|
|
See the [profile example](../examples/releasekit.json). The
|
|
[CLI contract](cli.md) lists the currently available command.
|