Skip to content

ci(release): tag automatically when a release branch merges - #13

Open
roncodes wants to merge 2 commits into
mainfrom
ci/release-branch-naming
Open

ci(release): tag automatically when a release branch merges#13
roncodes wants to merge 2 commits into
mainfrom
ci/release-branch-naming

Conversation

@roncodes

@roncodes roncodes commented Sep 3, 2026

Copy link
Copy Markdown
Member

Adds release-tag automation to this repository, using the release/v0.0.0 branch convention. Companion to fleetbase/fleetbase#641, which holds the reusable workflow this delegates to.

What it does

When a release branch is merged, it validates and pushes the tag — and nothing else. Whatever this repository already runs on push: tags: v* does the publishing, so there is no second release path.

The version is never retyped: it comes from the branch name (release/v1.2.3v1.2.3), and the tag is refused unless every version file and RELEASE.md already agree with it.

Validation, each failing rather than warning

  • the PR was merged, not merely closed, from a release/v<semver> branch (legacy dev-v<semver> still accepted)
  • every version file exists, yields a version, and matches
  • RELEASE.md exists, is non-empty, and its first line names this version
  • no RELEASE_NOTES_PLACEHOLDER marker remains
  • no tag already exists at a different commit (same commit is a safe no-op)

The tag goes on the PR's merge commit, never on the default branch at run time.

Also in this PR

A seeded RELEASE.md. The workflow refuses to release without notes whose first line names the version — that check is the only thing that can distinguish notes written for this release from the previous release's notes nobody replaced. Replace both placeholder markers before your first release, or the tag is refused.

Merge order

fleetbase/fleetbase#641 first, since this references the reusable workflow at @main.

🤖 Generated with Claude Code

Delegates to the reusable workflow in fleetbase/fleetbase, which validates and
pushes the tag. Accepts release/v0.0.0 and the legacy dev-v0.0.0.
The release workflow refuses to tag unless RELEASE.md's first line names the
version being released. Seeded so that check has something to validate; the
placeholder markers block publishing the template itself.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant