Skip to content

ci: run all darwin test lanes on main / opt-in only for now - #39191

Merged
alii merged 1 commit into
mainfrom
ci/darwin-tests-main-only
Aug 15, 2026
Merged

alii merged 1 commit into
mainfrom
ci/darwin-tests-main-only

Conversation

@alii

@alii alii commented Aug 15, 2026

Copy link
Copy Markdown
Member

PR builds have been waiting hours for the darwin 14 aarch64 test lane; the mac agent pool cannot keep up with current PR volume. This extends the existing gate (#37980, which covered only the 26 lane) to every darwin test lane: they run on main, on manual builds, or when the commit subject contains [macos tests]. darwin still builds on every PR, so compile breakage is still caught pre-merge.

--dry-run:

PR:                 darwin tests: []                                                    darwin build steps: 2
PR + [macos tests]: darwin tests: [26-aarch64, 14-aarch64, x64-14]
main:               darwin tests: [26-aarch64, 14-aarch64, x64-14]                       darwin build steps: 2

Revert when the pool can take PR volume again.

The mac agent pool cannot keep up with PR volume, so PR builds were
waiting hours on the darwin 14 aarch64 lane. Extend the existing gate
from the 26 lane to every darwin test lane: they run on main, on manual
builds, or when the commit subject has [macos tests]. darwin still
builds on every PR.

No-Verification-Needed: pipeline generator only; checked with --dry-run
@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 34 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: eeca65f0-c4d7-441e-99da-99d78d4b8598

📥 Commits

Reviewing files that changed from the base of the PR and between da12867 and e820016.

📒 Files selected for processing (1)
  • .buildkite/ci.mjs

Comment @coderabbitai help to get the list of available commands.

@robobun

robobun commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator
Updated 11:41 AM PT - Aug 15th, 2026

@alii, your commit e820016 is building: #98533

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM — straightforward extension of the existing darwin test-lane gate.

What was reviewed:

  • Filter change from os !== "darwin" || tier !== "latest" || … to os !== "darwin" || … correctly drops all three darwin test lanes on PRs while keeping them on main/manual/opt-in.
  • testStepKeys (release gate) is only consumed on main, where darwinTestsEnabled is true, so no dangling depends_on.
  • traceOrderTargets darwin entry is gated separately on isMainBranch()/[generate symbol order] and unaffected.
  • Comment above testPlatforms updated to match; no other references to the old variable name.
Extended reasoning...

Overview

This PR extends the existing darwin-test-lane gate in .buildkite/ci.mjs from covering only the tier: "latest" (macOS 26) lane to covering all three darwin test lanes. The change is a rename (darwinLatestLaneEnabled → darwinTestsEnabled), a simplified filter predicate (drops the tier !== "latest" clause and the now-unused tier destructure), and a matching comment update above testPlatforms. Darwin builds still run on every PR; only the test lanes are gated to main / manual / [macos tests] opt-in.

Security risks

None. This is CI pipeline generation logic that decides which test lanes to schedule; it touches no auth, crypto, or user-facing code paths.

Level of scrutiny

Low. It's a ~10-line CI config change that widens an existing, well-commented gate pattern (introduced in #37980) from one lane to three. The PR description includes --dry-run output confirming the three expected states (PR, PR+opt-in, main), and the change is explicitly framed as temporary/revertable.

Other factors

Checked downstream consumers: relevantTestPlatforms feeds testStepKeys, which the release step depends on — but that step only runs when isMainBranch(), where darwinTestsEnabled is always true, so no darwin depends_on is dropped there. The traceOrderTargets darwin-aarch64 entry lives in the build section under its own isMainBranch()/commit-tag gate and doesn't read relevantTestPlatforms. The unused tier destructure was correctly dropped from the filter callback. No lingering references to the old variable name.

@alii
alii merged commit b8610b9 into main Aug 15, 2026
8 of 9 checks passed
@alii
alii deleted the ci/darwin-tests-main-only branch August 15, 2026 18:44
alii added a commit that referenced this pull request Aug 15, 2026
…n take (#39195)

#39191 took darwin tests off PR builds because the version-specific
lanes were queueing for hours. The arm64 pool is not actually short of
capacity for PR volume; it is fragmented: the agents behind the `26`
lane sit mostly idle (that lane is main-only) while the `14` lane backs
up.

This gives PR builds **one untiered `darwin aarch64` test lane** whose
agent selector is just `queue=test-darwin, os=darwin, arch=aarch64`, so
every arm64 mac agent serves it regardless of macOS version. `main`,
manual builds and `[macos tests]` commits keep the three
version-specific lanes. `getTestAgent` only emits `release-tier` when a
tier is set, and the untiered lane sets no `EXPECTED_PLATFORM_RELEASE`,
so the runner's platform assert checks os/arch only.

`--dry-run`:
```
PR:   darwin-aarch64-any-test-bun  agents={queue: test-darwin, os: darwin, arch: aarch64}                         depends_on=darwin-aarch64-build-bun  parallelism=2
main: darwin-aarch64-26-test-bun   agents={..., release-tier: latest}    EXPECTED_PLATFORM_RELEASE=26
      darwin-aarch64-14-test-bun   agents={..., release-tier: previous}
      darwin-x64-14-test-bun       agents={queue: test-darwin, os: darwin, arch: x64}
```
alii added a commit that referenced this pull request Aug 21, 2026
x64 darwin tests came off PR builds in #39191 when the fleet was down to
4 Intel minis. MacStadium returned the other 5 today, so there are 9
again.

This adds `darwin-x64-any-test-bun` to PR builds, shaped exactly like
the existing aarch64 PR lane: untiered (`queue=test-darwin, os=darwin,
arch=x64`, any Intel box), 2 shards, and the same
`--skip-slower-than=10000` stopgap so it fits the pool at PR volume
(~6-7 min shards; 9 slots ≈ 216 slot-hours/day vs ~180 needed). `main`,
manual and `[macos tests]` builds still run the full `darwin-x64-14`
lane.

`--dry-run`: PR → `darwin-aarch64-any-test-bun` +
`darwin-x64-any-test-bun` (both skip-slow, par 2); main → `26` / `14` /
`x64-14` unchanged. The x64 lane depends on `darwin-x64-build-bun`,
which already runs on PRs.
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