51 lines
2.8 KiB
Markdown
51 lines
2.8 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. |
|
|
| `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](../releasekit.json).
|
|
See the [source-only profile](../examples/releasekit.json) and
|
|
[binary profile](../examples/releasekit-binary.json). The
|
|
[CLI contract](cli.md) lists the currently available command.
|