Skip to content

fix(ci): trigger tag-release on merge commits, not just squash merges#6

Closed
thinkingfish wants to merge 2 commits into
mainfrom
claude/nifty-ride-hw9z17
Closed

fix(ci): trigger tag-release on merge commits, not just squash merges#6
thinkingfish wants to merge 2 commits into
mainfrom
claude/nifty-ride-hw9z17

Conversation

@thinkingfish

Copy link
Copy Markdown
Member

Summary

The v1.0.1 release (PR #5) was merged but never tagged or published, because the tag-release.yml job was skipped.

Root cause

The job guard was:

if: "startsWith(github.event.head_commit.message, 'release: v')"

startsWith only matches squash-merge commit messages (release: v1.0.1 (#5)). PR #5 was merged with a default merge commit, whose message is:

Merge pull request #5 from iopsystems/claude/nifty-ride-hw9z17

release: v1.0.1

That starts with Merge pull request..., so the guard evaluated false and the job was skipped (run #21, conclusion skipped, 2s, no steps). No tag → release.yml (triggered on tag push) never ran → no crates.io publish, no GitHub Release, no dev-version bump.

Fix

Use contains(...) instead of startsWith(...) so both merge strategies trigger the job:

  • squash merge → release: v1.0.1 (#5)
  • merge commit → ...\n\nrelease: v1.0.1

Dev version-bump commits (chore: bump ...) don't contain release: v, so they remain unaffected.

Note: This fix only helps future releases. The already-merged v1.0.1 still needs its tag pushed manually to actually publish — see the chat for options.

🤖 Generated with Claude Code


Generated by Claude Code

claude added 2 commits June 22, 2026 00:28
The job guard used startsWith(head_commit.message, 'release: v'), which
only matches squash-merge commit messages. A default merge commit starts
with 'Merge pull request #N ...' and carries the PR title on a later line,
so the guard evaluated false and the release was skipped (no tag, no
publish). Use contains() so both merge strategies trigger the job; dev
version-bump commits don't contain 'release: v' and remain unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VR4FAfMXbCq7k6jQUGWa1w
Add CLAUDE.md explaining why release PRs must be squash-merged:
the tag-release.yml workflow checks for 'release: v' in the merge
commit message, which only works with squash merges (default merge
commits have 'Merge pull request ...' at the start).

Update release skill to emphasize squash-merge requirement and
reference CLAUDE.md for details.

Includes recovery steps for accidental merge commits.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VR4FAfMXbCq7k6jQUGWa1w
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.

2 participants