Skip to content

feat: add automated release preparation and tagging workflows - #12491

Merged
guanbinrui merged 1 commit into
developfrom
feature/release-automation
Sep 11, 2026
Merged

guanbinrui merged 1 commit into
developfrom
feature/release-automation

Conversation

@guanbinrui

Copy link
Copy Markdown
Member

Summary

Two new workflows to automate the version-bump-and-release flow:

  • prepare-release.yml (workflow_dispatch, choose patch / minor / major): bumps package.json with npm version <bump> --no-git-tag-version, commits chore: bump version X.Y.Z, pushes a branch, and opens a PR titled [Release] New release X.Y.Z (type).
  • tag-release.yml: triggers when a [Release] New release PR merges into released. Reads the version from package.json on released and pushes tag vX.Y.Z, which fires the Compile workflow's tag-triggered release-publish step (marvinpinto/action-automatic-releases) — this is safe now that fix: use github.ref instead of github.sha in Compile concurrency group #12490 keys the Compile concurrency group on github.ref instead of github.sha, so the branch-push and tag-push runs no longer race/cancel each other.

Note: for minor/major, promoting develop to released (fast-forwarding released + this automation taking over from there) is still a manual step — only the patch/hotfix path auto-publishes today. Happy to extend this to also handle the develop→released promotion if wanted.

Test plan

  • Manually dispatch Prepare Release with bump: patch, confirm it opens a hotfix/X.Y.Z PR into released with the right title and single package.json diff.
  • Manually dispatch with bump: minor (or major), confirm it opens a release/X.Y.Z PR into develop.
  • Merge a patch PR into released and confirm tag-release.yml pushes the tag and a GitHub Release gets published.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QKMxkCAVGzSyvaCghCNDSq

- prepare-release.yml: manually dispatched, lets you pick patch/minor/major,
  bumps package.json accordingly, commits, and opens a "[Release] New
  release X.Y.Z (type)" PR. Patch targets `released` directly (matching the
  existing hotfix/* convention); minor/major target `develop` (matching the
  existing release/* convention).
- tag-release.yml: when a "[Release] New release" PR merges into `released`,
  automatically creates and pushes the `vX.Y.Z` tag, which triggers the
  existing Compile workflow's release-publish step.

Promoting develop to released for minor/major releases is still a manual
step outside this automation.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QKMxkCAVGzSyvaCghCNDSq
@vercel

vercel Bot commented Sep 11, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
book Ready Ready Preview Sep 11, 2026 7:13am UTC

Request Review

@guanbinrui
guanbinrui merged commit 399c46e into develop Sep 11, 2026
11 checks passed
@guanbinrui
guanbinrui deleted the feature/release-automation branch September 11, 2026 08:02
- name: Commit version bump
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Email of who?

This branch was successfully deployed

1 active deployment
Preview — b5633c3e Deployed Sep 11, 2026 by vercel[bot]
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