ci: migrate to push-based release flow - #25
Merged
Conversation
Replaces the legacy `create_release_pr` + `create_release` branch-name
trigger workflow with a push-based auto-release flow:
- `.github/workflows/auto-release.yaml`: on push to main / release-*,
git-cliff inspects unreleased conventional commits, computes the
bumped version, and `gh release create` produces the tag + GitHub
Release atomically. Notes come from cliff's GitHub-aware template
(PR link + author per bullet, Full Changelog footer).
- `cliff.toml`: bump rules (feat -> minor, breaking -> major), Keep-a-
Changelog group mapping, squash-merge `(#N)` preprocessor, repo
coordinates for PR-link rendering.
Removes:
- `zz_generated.create_release_pr.yaml` (legacy release-PR opener)
- `zz_generated.create_release.yaml` (legacy tag/release publisher)
- `zz_generated.validate_changelog.yaml` (manual-CHANGELOG.md
enforcement; incompatible with conventional-commit-driven flow)
Existing CHANGELOG.md content is preserved verbatim. Future release
notes are published only on the GitHub Releases page.
fiunchinho
marked this pull request as ready for review
June 3, 2026 15:43
fiunchinho
enabled auto-merge (squash)
June 3, 2026 15:43
QuentinBisson
approved these changes
Jun 3, 2026
fiunchinho
disabled auto-merge
June 3, 2026 15:45
paurosello
approved these changes
Jun 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrates this repo from the legacy
create_release_pr+create_releasebranch-name-trigger flow to the validated push-based auto-release flow used in muster (giantswarm/muster#792) and klausctl (giantswarm/klausctl#259).After this lands, normal feature merges to
mainautomatically tag and publish a GitHub Release with notes generated from conventional commits since the last tag. No release PR, nomain#release#minorbranch dance, no manualCHANGELOG.mdedits required for the release itself.What's added
.github/workflows/auto-release.yaml— singleTagjob. On push tomain/release-*: git-cliff walks unreleased conventional commits, computes the bumped version, andgh release create --target $GITHUB_SHAcreates the tag + GitHub Release atomically. Concurrency-grouped per branch so backport releases onrelease-*don't fight withmain.cliff.toml— bump rules (feat-> minor,feat!/BREAKING CHANGE-> major, otherwise patch), Keep-a-Changelog group mapping (feat-> Added,fix-> Fixed, refactor/perf/docs/chore/test/build/ci -> Changed,security-> Security), squash-merge(#N)preprocessor, and[remote.github]for PR-link rendering.What's removed
.github/workflows/zz_generated.create_release_pr.yaml— legacy release-PR opener (themain#release#patchbranch trigger). Replaced..github/workflows/zz_generated.create_release.yaml— legacy tag/release publisher invoked by the release branch flow. Replaced..github/workflows/zz_generated.validate_changelog.yaml— enforced that every PR updateCHANGELOG.md. Incompatible with conventional-commit-driven generation where release notes come from commits, not handwritten file edits.What's preserved
CHANGELOG.md— left untouched. Existing entries stay as historical record; future release notes are published only on the GitHub Releases page. The[Unreleased]section is currently empty so nothing is lost.zz_generated.semantic_pull_request.yaml— essential for the new flow (enforces conventional-commit titles on PRs).zz_generated.check_values_schema.yaml,zz_generated.gitleaks.yaml,zz_generated.run_ossf_scorecard.yaml,zz_generated.add-team-labels.yaml,zz_generated.add-to-project-board.yaml— unrelated, kept..circleci/config.yml— chart publish on/^v.*/tag filter. Unchanged; it still fires on the tag the new workflow creates.Repo-specific notes
This is a Helm chart umbrella (
agentic-platform+agentic-platform-crds, no Go code), so:architecturesoverride on CircleCI (no CLI binaries).upload-release-assetsjob needed (no binary artifacts).tags: only: /^v.*/) is unchanged and picks up the new flow's tags automatically.Test plan
main-> Auto-release workflow runs -> newv0.X.Ytag + GitHub Release created with notes generated from commits since v0.5.0package-and-push-chart-on-tagworkflow, which publishes both charts to the giantswarm catalog as before