- Feature branch → open PR to
main.- CI runs: Helm lint, golangci-lint, unit tests, compact coverage summary (HTML + artifacts).
- Commit messages and PR title must be Conventional Commits.
- Merge PR to
main.- release-please (PR mode) evaluates commits on
mainand opens a single Release PR proposing the next version (vX.Y.Z), CHANGELOG, and manifest updates. - Review and merge the Release PR to publish the GitHub Release and tag.
- Tag workflow builds and publishes:
- Docker image:
ghcr.io/<owner>/private-llm-controller:vX.Y.Zand:latest. - Helm chart to
oci://ghcr.io/<owner>/charts. - Build metadata and checksums as release assets.
- Docker image:
- release-please (PR mode) evaluates commits on
- Release-please opens a Release PR after merges to
mainwhen there are releasable commits (e.g.,feat,fix,perf, or BREAKING CHANGE). Artifacts are built from tags after the Release PR is merged.
- SemVer based on Conventional Commits:
feat: minor (or major if!/BREAKING CHANGE)fix/perf: patch!orBREAKING CHANGE:footer: major
-
No Release PR opened:
- Ensure the workflow ran on
mainandskip-github-pull-requestisfalse. - Ensure there are releasable commits since the last release/baseline (
feat,fix,perf, or commits withBREAKING CHANGE). Commits likeci/choredo not trigger a release with the current config. - First release bootstrap: if there are no prior releases, add
bootstrap-sha(the first commit SHA onmain) to.release-please-config.jsonor include a commit with the footerRelease-As: vX.Y.Z.
- Ensure the workflow ran on
-
Pre-1.0 breaking changes bump minor:
- Add
"bump-minor-pre-major": trueto.release-please-config.jsonto bump MINOR instead of MAJOR when<1.0.0.
- Add
-
Do not push tags manually:
- Repo rules may block tag creation; let release-please create the tag via the Release PR merge.
- Docker: GHCR package page for the repo owner
- Helm:
helm pull oci://ghcr.io/<owner>/charts/private-llm-operator --version X.Y.Z - OCM:
oci://ghcr.io/<owner>/ocm