Prepare ReleaseKit hosted-page delivery

This commit is contained in:
2026-10-05 20:56:57 +00:00
parent 9e619c98a4
commit d0247d1ccb
8 changed files with 228 additions and 19 deletions

View File

@@ -1,11 +1,14 @@
# ReleaseKit release procedure
ReleaseKit's initial deliverable is source only. The authoritative repository
is `origin` at `https://gitea.maximumdirect.net/eric/ReleaseKit.git`, and the
release branch is `main`. A release completes when the intended annotated tag
is successfully pushed, or when one exact-object recovery query confirms that
the push succeeded. CI, hosted artifacts, and consumer installation are not
completion checks.
ReleaseKit's deliverables are its source tag and a hosted Gitea page containing
the complete checked-in release note. The page is delivered asynchronously by
the prepared [Woodpecker workflow](../examples/woodpecker/releasekit-source-delivery.yml);
it is not a source-release completion check and carries no binary assets. The
authoritative repository is `origin` at
`https://gitea.maximumdirect.net/eric/ReleaseKit.git`, and the release branch
is `main`. A release completes when the intended annotated tag is successfully
pushed, or when one exact-object recovery query confirms that the push
succeeded. CI and consumer installation are not completion checks.
## Prepare a candidate
@@ -88,6 +91,24 @@ uses the version, choose a new version after resolving the conflict.
If validation or a guard fails before the push, the local tag has not been
published. Correct and commit the candidate, publish `main`, and run the
command again. ReleaseKit does not publish executable artifacts or wait for
asynchronous delivery; any future deliverables require a separate policy and
procedure update.
command again. The prepared Woodpecker workflow builds the CLI from the tagged
checkout and runs page-only delivery. To activate it after configuring the
destination and secret, copy it to `.woodpecker/releasekit-source-delivery.yml`
and add the Woodpecker repository secret `releasekit_gitea_token`. If page
delivery fails or is uncertain, inspect the hosted release and retry the same
immutable version from its tag:
```sh
git fetch origin "refs/tags/vX.Y.Z:refs/tags/vX.Y.Z"
git checkout --detach "vX.Y.Z"
mkdir -p .releasekit/bin
GOTOOLCHAIN=local GOPROXY=off GOSUMDB=off go build -o .releasekit/bin/releasekit ./cmd/releasekit
RELEASEKIT_GITEA_TOKEN="$GITEA_TOKEN" .releasekit/bin/releasekit deliver "vX.Y.Z"
```
The root ignore file excludes `.releasekit/`. Delivery uses the committed note
and does not build consumer binaries, create a checksum manifest, or require a
previously released ReleaseKit executable. Keep source publication and hosted
page delivery status separate; retry only after resolving an uncertain remote
write. The workflow secret is named `releasekit_gitea_token` and is mapped to
`RELEASEKIT_GITEA_TOKEN` only in the delivery step.