fix(release): open a release PR into base instead of blocking on merge#26
Merged
Conversation
Version-bump now bumps on a throwaway release-bump/v-<run_id> branch and opens a PR into the base branch, then stops. It no longer polls for its own merge, pushes a long-lived release branch, or tags pre-merge. A human approves and merges the PR, and the merge triggers deploy downstream.
There was a problem hiding this comment.
Pull request overview
This PR adjusts the release pipeline behavior so the automation opens a version-bump PR into the base branch and exits, instead of blocking in the same run waiting for the PR to be merged (which times out on protected branches).
Changes:
version-bumpnow checks out base on a per-run throwawayrelease-bump/v-<run_id>branch (no long-lived release branch).release-prnow pushes that bump branch and opens a PR into base, without polling for merge or attempting auto-merge/tagging.- Action metadata updated to reflect the new flow.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/release-pr.ts | Pushes the bump branch and opens a PR into the base branch (removes waiting/auto-merge/tag steps). |
| actions/version-bump/action.yml | Switches to a throwaway bump branch and passes BUMP_BRANCH through to the PR-opening step. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
adrmachado-public
previously approved these changes
Jul 14, 2026
adrmachado-public
left a comment
Contributor
There was a problem hiding this comment.
generally LGTM!
…uard Addresses review on #26. - Rename the throwaway branch release-bump/v-<run_id> to release-bump-<run_id>. The slash form fails consumer branch-name validation (e.g. braintree.js scripts/hooks/validate-branch-name.js), so the hyphen form is valid everywhere and needs no per-repo exceptions. - Remove the dead dry-run guard in release-pr.ts. The version-bump action gates the Open the release PR step with 'if: dry-run != false', so release-pr.js only runs on real releases and the guard could never trigger.
adrmachado-public
approved these changes
Jul 16, 2026
lvandenboom
approved these changes
Jul 17, 2026
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.
Summary
The release pipeline opened a version-bump PR into the base branch and then blocked in the same run waiting for that PR to merge. The base requires review, so the wait always timed out and no release ever completed. Version-bump now bumps on a throwaway branch, opens the PR, and stops. A human approves and merges it, and the merge is what triggers deploy downstream.
Changes
version-bumpchecks out base on a throwawayrelease-bump/v-<run_id>branch (no long-lived release branch, no merging base into it).release-prpushes that branch and opens a PR into base, then exits. Dropped the merge-wait poll, the release-branch push, the pre-merge tag, and the auto-merge call.dist/release-pr.js.Test plan
npm run typecheck && npm run buildis clean anddist/stays in sync (validate-scripts).dry-run: truevalidates and computes the version, with no branch push or PR.Release vX.Y.ZPR into base and the job exits without polling for its own merge.