Repository navigation
Run macOS on main only, and release only what main proved - #52
Merged
Merged
Conversation
macOS runners are severely constrained. osx-arm64 AOT now runs only on a push to main and on a release (macOS AOT only compiles on macOS, and its smokeaot run stays in that job); workflow_dispatch packs the other four RIDs. A release now starts with main-green, which waits for main's ci.yml push run on the released commit and fails unless it passed. The AOT packs, the build that packs and publishes, and the major-tag move all need it. Co-Authored-By: Claude Opus 5.5 <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.
Takes macOS off pull requests and off the release path, except the osx-arm64 AOT pack, and makes every release wait for main's green CI run on the released commit before it builds, packs or pushes anything.
Prompt summary: Take macOS off pull requests and the release path, since those runners are severely constrained, and make every release check that main is green first.
What
main-green, the first release job, waits up to 60 minutes for main'sci.ymlpush run on the released commit (nullean/.github/actions/require-green-mainv1.6.0) and fails unless it succeeded.aot-packruns linux-x64 only on pull requests, as before. Each leg still runssmokeaotagainst GitHub, osx-arm64 included, on push and release. A push to main and a release run all five RIDs, and osx-arm64 is the one macOS job a release runs. workflow_dispatch packs the four RIDs that don't need macOS.aot-packandbuildneedmain-green. Theirif:uses!cancelled()so they still run on the other events, wheremain-greenis skipped. On a release,build(which packs, validates, pushes the container and publishes to nuget.org) skips only the curb format check, which main's run already did.create-major-tag.ymlgets its ownmain-greenjob, so the floatingvNtag moves only for a commit main has proven.AGENTS.md's Releasing paragraph is updated to match.pull_requestaot-packlinux-x64 (ubuntu),build(ubuntu),zizmorpush(main)aot-packx5 (ubuntu, ubuntu-24.04-arm, windows, windows-11-arm, macos for osx-arm64),build(ubuntu),zizmorreleasemain-green→aot-packx5 (incl. osx-arm64 on macos) →build(pack, container push, nuget.org);zizmor(publishes nothing). create-major-tag.yml:main-green→create-major-tagworkflow_dispatchaot-packx4 (no osx-arm64),build(ubuntu),zizmorOn a release, every job that packs or publishes is downstream of
main-green, and no release job needs a skipped job. The required checks (build,AOT pack (linux-x64)) still report on pull requests.Verify
mise exec actionlint@latest shellcheck@latest -- actionlint: clean.zizmor --min-severity medium .github: no findings.if:/needs:/matrix expressions. No CI was run, to keep the runner queue free.🤖 Generated with Claude Code