Skip to content

ci(release): release by merging a VERSION bump - #15

Merged
rmilyushkevich merged 1 commit into
mainfrom
ci/release-on-version-bump
Oct 20, 2026
Merged

rmilyushkevich merged 1 commit into
mainfrom
ci/release-on-version-bump

Conversation

@rmilyushkevich

Copy link
Copy Markdown
Contributor

Why

A weekly Claude routine will review PRs and cut releases for this repo. Cloud sessions can open and merge PRs, but they can only push claude/* branches, not tags. Right now a release only happens when someone pushes a v* tag by hand.

What changes

  • New VERSION file, set to 0.2.2 (the current release).
  • release.yml also runs when a push to main changes VERSION. It checks the value is semver, tags the merge commit v<VERSION>, and runs goreleaser in the same job. It has to: a tag pushed with GITHUB_TOKEN doesn't start another workflow run. If the tag already exists, it stops without releasing.
  • Optional .github/release-notes/v<VERSION>.md becomes the release body (via --release-notes). Without it, goreleaser's generated changelog is used, as today.
  • Hand-pushed v* tags still release exactly as before.
  • The README's contributing section has one line on how to release.

Merging this PR releases nothing, because VERSION matches the existing v0.2.2 tag.

Tested

  • actionlint passes on all three workflows.
  • I ran the tag step locally against this repo's tags:
    • 0.2.2: skipped (tag exists).
    • 0.3.0: tagged v0.3.0.
    • 0.3.0-rc.1: tagged (goreleaser marks it a pre-release).
    • 0.4.0 with stray whitespace: tagged v0.4.0.
    • v0.3: rejected.
  • Not yet run end to end on Actions. The first real VERSION bump will be the test.

Heads-up

verify-generated will show drift here as well. It regenerates from the live catalog, and main is behind it (see #14).

🤖 Generated with Claude Code

Merging a PR that changes VERSION now tags the merge commit v<VERSION>
and runs goreleaser in the same job. A tag pushed with GITHUB_TOKEN
doesn't start another workflow run, so the build can't wait for the tag
trigger. If .github/release-notes/v<VERSION>.md exists, it becomes the
release body instead of the generated changelog. Pushing a v* tag by hand
still releases as before.

This lets the release be a reviewable PR, and lets automation that can
open and merge PRs but can't push tags cut releases.

VERSION starts at 0.2.2, the current release, so merging this PR tags
nothing.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@rmilyushkevich
rmilyushkevich merged commit fa2303f into main Oct 20, 2026
3 of 4 checks passed
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