ci: extend PR-validation triggers to release/v* branches#291
Merged
Conversation
Branch protection on `release/v11` (applied in #270) requires the `ubuntu-latest` status check, but `.github/workflows/ubuntu-latest.yml` and `.github/workflows/ubuntu-latest-docs.yml` only fired on PRs targeting `main`. Net effect: PRs against `release/v11` had no CI and got BLOCKED by branch protection waiting for a check that never reported — a chicken-and-egg that surfaced when #290 (the NB.GV publicReleaseRefSpec tweak) couldn't merge. Changes: - Both workflows now list `main` AND `release/v*` under `pull_request.branches:`. - `build/Build.cs` gains a `ReleaseBranchPattern = "release/v*"` constant alongside `MainBranch`. - `build/Build.CI.GitHubActions.cs` extends `OnPullRequestBranches` on the ubuntu-latest `[GitHubActions]` attribute to include both branches, so next time the auto-generator runs it produces the same YAML. Out of scope: `windows-latest` and `macos-latest` stay `OnPushBranches` only (post-merge / release validation). They run after merge regardless of base branch via the push trigger. After this lands on main, the same workflow files need to be brought across to `release/v11` (separate PR — same chicken-and-egg until release/v11 also has the updated workflows; will be admin-bypass-merged once). Refs milestone #13. Unblocks #290. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ChrisonSimtian
added a commit
that referenced
this pull request
May 29, 2026
Branch protection on `release/v11` (applied in #270) requires the `ubuntu-latest` status check, but `.github/workflows/ubuntu-latest.yml` and `.github/workflows/ubuntu-latest-docs.yml` only fired on PRs targeting `main`. Net effect: PRs against `release/v11` had no CI and got BLOCKED by branch protection waiting for a check that never reported — a chicken-and-egg that surfaced when #290 (the NB.GV publicReleaseRefSpec tweak) couldn't merge. Changes: - Both workflows now list `main` AND `release/v*` under `pull_request.branches:`. - `build/Build.cs` gains a `ReleaseBranchPattern = "release/v*"` constant alongside `MainBranch`. - `build/Build.CI.GitHubActions.cs` extends `OnPullRequestBranches` on the ubuntu-latest `[GitHubActions]` attribute to include both branches, so next time the auto-generator runs it produces the same YAML. Out of scope: `windows-latest` and `macos-latest` stay `OnPushBranches` only (post-merge / release validation). They run after merge regardless of base branch via the push trigger. After this lands on main, the same workflow files need to be brought across to `release/v11` (separate PR — same chicken-and-egg until release/v11 also has the updated workflows; will be admin-bypass-merged once). Refs milestone #13. Unblocks #290. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 29, 2026
ChrisonSimtian
added a commit
that referenced
this pull request
May 29, 2026
…book + ADR (#276, #277) (#295) Closes #276 and #277. Captures the full milestone #13 outcome in three places now that all the moving parts are in production: CONTRIBUTING.md - "Where to start" updated: PRs target main, releases ship from release/vN, hotfix flow noted. - "After opening a PR" updated to reflect ubuntu-latest now firing on release/v* PRs too (post #291/#292), with the windows/macos parity follow-up linked (#293). - New "Releases" section pointing contributors at the maintainer runbook. docs/branching-and-release.md (new) - Maintainer reference: branches at a glance, channel taxonomy, full step-by-step for cutting a release (gh release create + the env approval-gate prompt), hotfix workflow (cherry-pick recipe), workflow_dispatch fallback for re-running partial publishes, cutting a new release/vN, deprecating an old one, tag-protection ruleset. docs/adr/0001-release-branch-model.md (new — seeds docs/adr/) - Architecture Decision Record covering Context (consumer-facing noise from auto-release; no hotfix path), Decision (the model), and Consequences (positive + negative + neutral). Includes the four alternatives we considered and rejected. - Cites the consumer-pain-first principle (saved as agent memory) that drove the cutover timing. - Status: Accepted. Implementation already shipped. AGENTS.md - "Where to look next" links the new branching-and-release.md doc and the docs/adr/ directory so AI agents reading the brief discover them. CHANGELOG.md - Umbrella entry for milestone #13 under [Unreleased] — 11.0 → Process, summarising all sub-issues that landed: #269, #270, #272, #273, #274, #275, #291, #292. Per the pattern set in #269's closing comment — one consolidated entry rather than nine fragmented per-sub-issue entries. Refs milestone #13, RFC #267. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4 tasks
ChrisonSimtian
added a commit
that referenced
this pull request
May 29, 2026
Closes #293. Parity follow-up to #291 (which extended PR-validation triggers to release/v*). After this: - windows-latest.yml — pull_request trigger unchanged (still PR-only on main, by design); push trigger extends to main AND release/v*. - macos-latest.yml — same. - build/Build.CI.GitHubActions.cs — OnPushBranches on both windows and macos [GitHubActions] entries gain ReleaseBranchPattern alongside MainBranch, so next auto-regen produces matching YAML. Effect: a hotfix merged to release/v11 now triggers Windows + macOS post-merge validation, same as merges to main. Cross-platform regressions in release-branch hotfixes surface immediately as red commits on the release branch, not later when someone tries to cut a release. Out of scope: extending pull_request triggers on windows/macos to fire on release/v* PRs. The current PR gate (ubuntu-latest only) is a deliberate cost trade-off documented in docs/agents/release-and-versioning.md. Refs milestone #13. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Fixes the CI chicken-and-egg surfaced by #290. Branch protection on
release/v11(applied in #270) requiresubuntu-latest, but no workflow was firing it for PRs against this branch — they BLOCKED indefinitely.What changes
.github/workflows/ubuntu-latest.yml— addsrelease/v*topull_request.branches..github/workflows/ubuntu-latest-docs.yml— same.build/Build.cs— newReleaseBranchPattern = "release/v*"constant alongsideMainBranch.build/Build.CI.GitHubActions.cs—OnPullRequestBrancheson the ubuntu-latest[GitHubActions]attribute extended to include both. Keeps the auto-generator output in sync with the hand-edits so a futuredotnet fallout --generate-configurationdoesn't undo this.What's out of scope
windows-latestandmacos-lateststayOnPushBranchesonly — they're post-merge validation, not PR gates. They'll fire on push torelease/v*automatically oncerelease/v*is also added to theirOnPushBranches... but actually those are still onMainBranchonly. Follow-up worth filing: extend the push triggers too sorelease/v11gets the same post-merge cross-platform validation main has. Not blocking this PR.Propagation to release/v11
After this lands on
main, the same workflow files need to be brought across torelease/v11— same chicken-and-egg untilrelease/v11itself has the updated workflows. Plan:main(normal CI flow, since it targets main).release/v11.release/v11has working CI, and chore(versioning): add release/v11 to publicReleaseRefSpec #290 + future release-branch PRs run normally.Test plan
Refs milestone #13. Unblocks #290.
🤖 Generated with Claude Code