Separate example setup from synthetic test releases
This commit is contained in:
@@ -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`.
|
||||
|
||||
Reference in New Issue
Block a user