From e820016db619529cd4bc8627fa1180edc6168c6d Mon Sep 17 00:00:00 2001 From: Alistair Smith Date: Sat, 15 Aug 2026 11:41:16 -0700 Subject: [PATCH] ci: run all darwin test lanes on main / opt-in only for now 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 --- .buildkite/ci.mjs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.buildkite/ci.mjs b/.buildkite/ci.mjs index b88632ae573f..224642f86f29 100755 --- a/.buildkite/ci.mjs +++ b/.buildkite/ci.mjs @@ -186,10 +186,8 @@ const testPlatforms = [ // The darwin test suite runs on real macOS agents against the Linux-built // artifacts from the `darwin--build-bun` steps (the only darwin build // lanes — see buildPlatforms). - // The `latest` lane only has two agents behind it right now (the Studios - // came back on macOS 15 and can only host 15 guests), so until they are on - // 26 it runs on main and on opt-in (see darwinLatestLaneEnabled), not on - // every PR push. + // All three darwin test lanes run on main and on opt-in only for now (see + // darwinTestsEnabled): the mac agent pool cannot keep up with PR volume. { os: "darwin", arch: "aarch64", release: "26", tier: "latest" }, { os: "darwin", arch: "aarch64", release: "14", tier: "previous" }, { os: "darwin", arch: "x64", release: "14", tier: "latest" }, @@ -1545,11 +1543,11 @@ async function getPipeline(options = {}) { // Tests run on main too so the canary release step below can gate on them. // ASAN is PR-only (see includeASAN above), so the asan test lane is dropped // on main along with its build. - const darwinLatestLaneEnabled = + const darwinTestsEnabled = isMainBranch() || isBuildManual() || /\[(macos|darwin) tests?\]/i.test(getCommitMessage()); const relevantTestPlatforms = ( includeASAN ? testPlatforms : testPlatforms.filter(({ profile }) => profile !== "asan") - ).filter(({ os, tier }) => os !== "darwin" || tier !== "latest" || darwinLatestLaneEnabled); + ).filter(({ os }) => os !== "darwin" || darwinTestsEnabled); /** @type {string[]} */ const testStepKeys = []; {