Skip to content

ci: give PR builds an x64 darwin test lane again - #39909

Merged
alii merged 1 commit into
mainfrom
ci/darwin-x64-on-prs
Aug 21, 2026
Merged

alii merged 1 commit into
mainfrom
ci/darwin-x64-on-prs

Conversation

@alii

@alii alii commented Aug 21, 2026

Copy link
Copy Markdown
Member

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.

x64 darwin tests were taken off PR builds in #39191 when the fleet was
down to 4 Intel minis. With 9 back, PR builds get a darwin-x64-any
lane shaped exactly like the aarch64 one: untiered (any Intel agent),
2 shards, and the same --skip-slower-than=10000 stopgap, so it fits the
pool at PR volume. main keeps the full x64 suite as before.

No-Verification-Needed: pipeline generator; checked with --dry-run (PR: aarch64-any + x64-any; main: 26/14/x64 unchanged)
@robobun

robobun commented Aug 21, 2026 •

Copy link
Copy Markdown
Collaborator
Updated 1:57 AM PT - Aug 21st, 2026

✅ @alii, your commit 29d800528419305658f91a723885df7fe62a54cc passed in Build #102501! 🎉


🧪   To try this PR locally:

bunx bun-pr 39909

That installs a local version of the PR into your bun-39909 executable, so you can run:

bun-39909 --bun

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 228fd683-589a-4aa8-bda7-48016f004c96

📥 Commits

Reviewing files that changed from the base of the PR and between d4de65e and 29d8005.

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

Included review availability: 1 review is currently available. Your included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.


Walkthrough

Changes

Darwin testing

Layer / File(s) Summary
Darwin platform lanes
.buildkite/ci.mjs
The PR Darwin platform list adds an untiered x64 platform alongside arm64. The related comment documents dedicated lanes for both architectures.

Suggested reviewers: robobun, jarred-sumner, dylan-conway

Merge Risk: ⚪ Minimal · up to 29d80

This adds the x64 Darwin test lane to pull-request builds without any supplied evidence of a correctness or production-impact issue; no actionable merge-blocking risk remains beyond normal checks and review.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the restored x64 Darwin test lane for pull request builds.
Description check ✅ Passed The description explains the change and includes detailed verification results, although it does not use the template headings.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

@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 — mirrors the existing aarch64 PR lane pattern exactly; the one inline note is a stale comment.

Extended reasoning...

Overview

Adds a second entry ({ os: "darwin", arch: "x64", release: "any" }) to prDarwinTestPlatforms in .buildkite/ci.mjs, plus a comment update at testPlatforms. This restores an x64 darwin test lane on PR builds now that the Intel Mac fleet is back to 9 machines.

Security risks

None. Pure CI pipeline config — no runtime code, no auth/crypto/permissions.

Level of scrutiny

Low. This is a small, mechanical config addition that mirrors the existing aarch64 PR lane byte-for-byte in shape. I traced the new entry through each consumer: getTestAgent (darwin branch already handles x64 without a release-tier tag), getTestBunStep (!platform.tier → --skip-slower-than=10000, parallelism: 2, no EXPECTED_PLATFORM_RELEASE since that gate is aarch64+latest only), getPlatformKey → darwin-x64-any-test-bun, and depends_on → darwin-x64-build-bun which is already in buildPlatforms on PRs. The darwinTestsEnabled gating is unchanged, so main/manual/[macos tests] still get the full darwin-x64-14 lane instead.

Other factors

The PR description shows --dry-run verification of both PR and main pipelines. The only finding is a stale "arm64" in the comment directly above the array — a nit, not a blocker. The change has already landed on main (29d80052).

Comment thread .buildkite/ci.mjs
@@ -1574,7 +1575,10 @@ async function getPipeline(options = {}) {
// on main along with its build.
// Untiered: any arm64 mac agent, whatever macOS it runs, can take it.

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.

🟡 The comment immediately above prDarwinTestPlatforms still says "any arm64 mac agent" but the array now also has an x64 lane. The parallel comment at testPlatforms (lines 190-192) was updated to cover both pools; this one was missed — drop "arm64" or reword to "any mac agent of that arch".

Extended reasoning...

What the bug is

The comment on line 1576 reads:

// Untiered: any arm64 mac agent, whatever macOS it runs, can take it.

but the prDarwinTestPlatforms array declared directly beneath it now contains both an aarch64 entry and an x64 entry. The comment describes only half of what the array holds.

Step-by-step

  1. Before this PR, prDarwinTestPlatforms was a single-element array: [{ os: "darwin", arch: "aarch64", release: "any" }]. The comment "any arm64 mac agent, whatever macOS it runs, can take it" was accurate — it described exactly the one lane.
  2. This PR adds { os: "darwin", arch: "x64", release: "any" } to the array (lines 1578-1581 in the new file).
  3. The PR author did notice the parallel explanatory comment up in testPlatforms and updated it (diff hunk at lines 188-192) from "so the whole arm64 pool serves PRs" to "so the whole arm64 pool serves one PR lane and the whole x64 pool the other".
  4. The comment right above the declaration itself, however, was left unchanged and still says "arm64" only.

Why nothing else catches it

There is no code enforcing comment/array agreement — this is documentation drift. The fact that the sibling comment at testPlatforms was updated in the same diff shows the author intended both to reflect the new state and simply overlooked this one.

Impact

No runtime impact — comment only. But per REVIEW.md ("Name things truthfully"; "Only comment what the code cannot say"), stale comments are reviewed as code. A future reader skimming for "why is x64 not in the PR lane?" could be misled by a comment that says arm64 only, directly above an array that contains x64.

Fix

Reword to match the updated testPlatforms comment, e.g.:

// Untiered: any mac agent of that arch, whatever macOS it runs, can take it.

or simply drop "arm64":

// Untiered: any mac agent, whatever macOS it runs, can take it.

@alii
alii merged commit 4448a2e into main Aug 21, 2026
7 of 8 checks passed
@alii
alii deleted the ci/darwin-x64-on-prs branch August 21, 2026 09:20
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