feat(release): immediate "branch cut" Feishu card on both release cuts (with backport label) - #5323
Merged
Merged
Conversation
…ease cuts
Cutting a release branch (Tuesday minor via cut-release, Thursday patch via
cut-patch-release) pushes to release/**, which triggers notify-release-feishu to
build a full prerelease before it posts the download card — 20-40 minutes during
which the team has no signal the cut even happened.
Post an eager green "🌿 已切出 release 分支" card the moment the branch exists, from
the cut workflow itself, reusing feishu-notice.ts (node:crypto only, so the
existing setup-node suffices). The card names:
- the branch and whether it is a 大版本 (minor) or 小版本 (patch),
- the exact backport label (`backport release/vX.Y.Z`) so people know which
label to apply for backports,
- a note that the prerelease build is running and a download card will follow.
The download card from notify-release-feishu is unchanged; each cut now yields
an immediate ack card plus the eventual download card. The patch workflow's eager
card only fires on the happy (published) path, alongside the existing skip card.
Topology test asserts both workflows post the eager card after the branch push and
name the backport label.
mrcfps
approved these changes
Jul 9, 2026
mrcfps
left a comment
Contributor
There was a problem hiding this comment.
@lefarcen I reviewed the changed release workflows and the focused e2e topology coverage. The new Feishu branch-cut notice is placed after the branch push and backport label creation, the patch workflow keeps the notice on the published happy path, and the card content reuses the existing signed Feishu notifier without adding dependency setup. I also checked the live PR metadata, prior feedback state, changed diff, git diff --check, and available CI/status output; no changed-range correctness or safety issues stood out. Thanks for tightening the release communication loop here.
xxiaoxiong
pushed a commit
to xxiaoxiong/open-design
that referenced
this pull request
Jul 13, 2026
…ease cuts (nexu-io#5323) Cutting a release branch (Tuesday minor via cut-release, Thursday patch via cut-patch-release) pushes to release/**, which triggers notify-release-feishu to build a full prerelease before it posts the download card — 20-40 minutes during which the team has no signal the cut even happened. Post an eager green "🌿 已切出 release 分支" card the moment the branch exists, from the cut workflow itself, reusing feishu-notice.ts (node:crypto only, so the existing setup-node suffices). The card names: - the branch and whether it is a 大版本 (minor) or 小版本 (patch), - the exact backport label (`backport release/vX.Y.Z`) so people know which label to apply for backports, - a note that the prerelease build is running and a download card will follow. The download card from notify-release-feishu is unchanged; each cut now yields an immediate ack card plus the eventual download card. The patch workflow's eager card only fires on the happy (published) path, alongside the existing skip card. Topology test asserts both workflows post the eager card after the branch push and name the backport label.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
notify-release-feishuposts its download card. There's no signal in between that the cut even happened.cut-release) and the Thursday patch (cut-patch-release), the team wants to know immediately that the branch exists (and which backport label to use), without staring at Actions for half an hour waiting for the build.What users will see
For the team in the release Feishu group: each release cut now posts two cards instead of one.
backport release/vX.Y.Z— so people know which label to apply for backports,notify-release-feishudownload card (macOS/Windows/Linux links + changelog), unchanged.The Thursday patch workflow's eager card only fires on the happy (published) path, alongside its existing "⏭️ 已跳过" skip card.
Surface area
cut-release.ymlandcut-patch-release.ymlworkflows only. No product UI/CLI surface.feishu-notice.ts.Implementation
Each cut workflow gains one
Notify Feishu that the branch was cutstep, placed after the branch push + backport-label creation, invoking the existingtools/release/src/notifications/feishu-notice.ts(imports onlynode:crypto, so the workflows' existingsetup-nodeis all it needs — nopnpm install). Card body islark_mdwith the branch link, cut type, and the backticked backport label.Bug fix verification
Not a bug fix. Topology coverage added in
e2e/tests/packaged-smoke-workflow.test.ts: asserts both workflows post the eager card aftergit push origin "$BRANCH", reusefeishu-notice.ts+ the release webhook secret, namebackport release/v${{ steps.ver.outputs.version }}, distinguish 大版本/小版本, and that the patch workflow's card is gated on the published (happy) path.Validation
actionlinton bothcut-release.ymlandcut-patch-release.yml— clean.sectionBetween/indexOflogic — all pass.feishu-notice.tsis unchanged (already shipping since ci(release): Thursday patch-release cut, gated on the Tuesday minor shipping #5294);pnpm typecheck+pnpm guardrun in CI Preflight.