Single source of truth for every release of
stellar-k8s.
This file is parsed by.github/workflows/release-gate.ymlto enforce each gate automatically before a tag is published.
Do not remove or rename sections — the gate script depends on them.
-
Cargo.tomlversionfield updated to the new semver -
charts/stellar-operator/Chart.yamlversionandappVersionupdated -
CHANGELOG.mdhas an entry for this version
- All CI jobs pass on the release commit (
mainbranch) -
cargo auditshows no unignored CRITICAL/HIGH advisories -
cargo deny checkpasses (licenses + bans) - Helm lint passes (
helm lint charts/stellar-operator --strict) - Helm unit tests pass (
helm unittest charts/stellar-operator --strict)
- Multi-arch image builds successfully (
linux/amd64,linux/arm64) - Trivy scan shows no new CRITICAL vulnerabilities
- Image tag matches the release version
- Chart version bumped to match release version
-
helm templaterenders without errors - Values schema (
values.schema.json) is up to date
-
docs/api-reference.mdregenerated (make generate-api-docs) - README Quick Start commands tested against the new version
-
CHANGELOG.mdreviewed for accuracy
- Git tag is
v<semver>(e.g.v1.2.0) - Tag is pushed to
origin/main(not a feature branch) - GitHub Release draft created with changelog body
- Binary artifacts attached (linux-amd64, linux-arm64, darwin-amd64, darwin-arm64)
- Helm chart
.tgzattached to the release
- Helm repository index updated
- Docker Hub / GHCR
latesttag points to new release - GitHub Release published (un-drafted)
- Release announcement drafted (Discord / GitHub Discussions)
The script scripts/release-gate.sh is run automatically by
.github/workflows/release-gate.yml on every v*.*.* tag push.
It verifies the following hard gates — a failing gate blocks the release:
| Gate | Command | Failure Action |
|---|---|---|
| Version format | semver regex | Abort |
| Cargo.toml matches tag | grep + compare | Abort |
| Chart.yaml matches tag | grep + compare | Abort |
| CHANGELOG entry exists | grep | Abort |
cargo audit clean |
cargo audit |
Abort |
| Helm lint passes | helm lint --strict |
Abort |
| Helm unit tests pass | helm unittest --strict |
Abort |
Run the gate locally before tagging:
VERSION=1.2.0 bash scripts/release-gate.sh