Skip to content

ci(release): add tag push trigger as binary build safety net#871

Merged
kys0213 merged 1 commit into
mainfrom
ci/release-workflow-guardrails
Apr 22, 2026
Merged

ci(release): add tag push trigger as binary build safety net#871
kys0213 merged 1 commit into
mainfrom
ci/release-workflow-guardrails

Conversation

@kys0213

@kys0213 kys0213 commented Apr 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add on.push.tags: ['v*'] trigger to release.yml so any v*-prefixed tag produces binaries, regardless of how the tag was created
  • Add concurrency group keyed by tag name to prevent two runs racing for the same tag (e.g. workflow_call from release-please + push.tags from the same tag)
  • Resolve tag_name from either inputs.tag_name (workflow_call/dispatch) or github.ref_name (tag push) in checkout.ref and action-gh-release.tag_name

Why

Builds previously only ran when release-please invoked release.yml via workflow_call. The recent skip-labeling regression produced v0.1.7v0.1.10 release commits on main without any matching tags, and there was no way to recover the binaries short of editing the workflow. This PR closes that hole: manual backfill tags (or any recovery path that pushes a v* tag) now triggers the full build + asset upload.

Paired with the verify-release guard added in #865, the release pipeline now fails loudly on silent skips and has a recovery path that doesn't require code changes.

Test plan

  • Merge and observe the Release workflow triggering on the next release-please tag (workflow_call path, unchanged behavior)
  • Push a v0.1.7 recovery tag manually and confirm the Release workflow runs and uploads artifacts to the corresponding GitHub Release

🤖 Generated with Claude Code

Release builds previously required release-please.yml to invoke release.yml
via workflow_call. When release-please skipped tag creation (the 2026-04
skip-labeling regression that silently produced v0.1.7–v0.1.10 commits
without tags), no binaries were built and manual recovery via tag push had
no effect.

Add an `on.push.tags: ['v*']` trigger plus a concurrency group so any
v*-prefixed tag—whether generated by release-please, pushed manually, or
backfilled during recovery—produces binaries. Resolve `tag_name` from
either workflow_call input or `github.ref_name` to support both entry
points without duplication.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@kys0213 kys0213 merged commit 7bc600d into main Apr 22, 2026
4 checks passed
@kys0213 kys0213 deleted the ci/release-workflow-guardrails branch April 22, 2026 23:25
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