|
|
|
|
@@ -12,6 +12,28 @@ the launcher from that checkout.
|
|
|
|
|
The sample modules declare Go 1.26.0, matching the current ReleaseKit consumer
|
|
|
|
|
minimum.
|
|
|
|
|
|
|
|
|
|
## Select the release tool
|
|
|
|
|
|
|
|
|
|
The module files are setup skeletons. Set `RELEASEKIT_TOOL_VERSION` to a released
|
|
|
|
|
ReleaseKit version containing module-release support, then register that tool in
|
|
|
|
|
each consumer module before running the launcher or workflow:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
: "${RELEASEKIT_TOOL_VERSION:?Select a ReleaseKit release with module-release support}"
|
|
|
|
|
for module_dir in . integrations/ckconfig integrations/core/v2; do
|
|
|
|
|
go -C "$module_dir" get -tool "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit@${RELEASEKIT_TOOL_VERSION}"
|
|
|
|
|
go -C "$module_dir" mod tidy
|
|
|
|
|
done
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Review and commit the generated tool, dependency, and checksum declarations.
|
|
|
|
|
Release preparation records the chosen compatible version in these maintained
|
|
|
|
|
module files. The feature roadmap leaves that release version to release
|
|
|
|
|
preparation. The [adoption guide](../../docs/consumers/adoption.md) owns tool
|
|
|
|
|
registration and coordinated tool/workflow upgrades.
|
|
|
|
|
|
|
|
|
|
## Module mapping and publication
|
|
|
|
|
|
|
|
|
|
`release-modules.tsv` is literal tab-separated text with four columns:
|
|
|
|
|
|
|
|
|
|
1. Local selector.
|
|
|
|
|
@@ -71,3 +93,40 @@ page-only. Before enabling the workflow, configure each selected profile's
|
|
|
|
|
`delivery` destination and add the Woodpecker repository secret
|
|
|
|
|
`releasekit_gitea_token`; the workflow exposes it as
|
|
|
|
|
`RELEASEKIT_GITEA_TOKEN` only in the delivery step.
|
|
|
|
|
|
|
|
|
|
Retries use the selected tag's module files and matching workflow. Tags whose
|
|
|
|
|
tool predates this interface use their corresponding historical workflow.
|
|
|
|
|
|
|
|
|
|
## Local source verification
|
|
|
|
|
|
|
|
|
|
For verification before a compatible release is published, copy this example
|
|
|
|
|
into a disposable consumer checkout. Set `RELEASEKIT_SOURCE` to the absolute
|
|
|
|
|
path of a prepared ReleaseKit checkout, then select its source in those fixture
|
|
|
|
|
modules:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
: "${RELEASEKIT_SOURCE:?Set the absolute ReleaseKit checkout path}"
|
|
|
|
|
for module_dir in . integrations/ckconfig integrations/core/v2; do
|
|
|
|
|
go -C "$module_dir" mod edit \
|
|
|
|
|
-require=gitea.maximumdirect.net/eric/ReleaseKit@v0.0.0 \
|
|
|
|
|
-replace="gitea.maximumdirect.net/eric/ReleaseKit=$RELEASEKIT_SOURCE" \
|
|
|
|
|
-tool=gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit
|
|
|
|
|
GOTOOLCHAIN=local GOWORK=off go -C "$module_dir" mod tidy
|
|
|
|
|
done
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Here `v0.0.0` is a fixture placeholder resolved by the local replacement.
|
|
|
|
|
Keep these declarations in the disposable checkout. Add representative product
|
|
|
|
|
source and each selected product's module-local release note, then commit the
|
|
|
|
|
fixture and run the source-selected tool without publishing:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
go tool releasekit check --config releasekit-root.json v1.2.3
|
|
|
|
|
go -C integrations/ckconfig tool releasekit check --config releasekit-ckconfig.json v1.2.3
|
|
|
|
|
go -C integrations/core/v2 tool releasekit check --config releasekit-core-v2.json v2.1.0
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
These commands use the repository-root profile paths even when invoked from a
|
|
|
|
|
child module. The core profile also verifies the native binary and injected
|
|
|
|
|
version. Prepared dependencies allow this verification with `GOPROXY=off` and
|
|
|
|
|
`GOSUMDB=off`.
|
|
|
|
|
|