Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions .buildkite/ci.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,9 @@ const testPlatforms = [
// The darwin test suite runs on real macOS agents against the Linux-built
// artifacts from the `darwin-<arch>-build-bun` steps (the only darwin build
// lanes — see buildPlatforms).
// 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.
// These three version-specific lanes run on main and on opt-in (see
// darwinTestsEnabled). PR builds instead get one aarch64 lane that any mac
// agent can take (prDarwinTestPlatforms), so the whole arm64 pool serves PRs.
{ os: "darwin", arch: "aarch64", release: "26", tier: "latest" },
{ os: "darwin", arch: "aarch64", release: "14", tier: "previous" },
{ os: "darwin", arch: "x64", release: "14", tier: "latest" },
Expand Down Expand Up @@ -409,7 +410,7 @@ function getTestAgent(platform, options) {
queue: `test-${os}`,
os,
arch,
...(arch === "aarch64" ? { "release-tier": tier } : {}),
...(arch === "aarch64" && tier ? { "release-tier": tier } : {}),
};
}

Expand Down Expand Up @@ -1543,11 +1544,16 @@ 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.
// Untiered: any arm64 mac agent, whatever macOS it runs, can take it.
/** @type {Platform[]} */
const prDarwinTestPlatforms = [{ os: "darwin", arch: "aarch64", release: "any" }];
const darwinTestsEnabled =
isMainBranch() || isBuildManual() || /\[(macos|darwin) tests?\]/i.test(getCommitMessage());
const relevantTestPlatforms = (
includeASAN ? testPlatforms : testPlatforms.filter(({ profile }) => profile !== "asan")
).filter(({ os }) => os !== "darwin" || darwinTestsEnabled);
)
.filter(({ os }) => os !== "darwin" || darwinTestsEnabled)
.concat(darwinTestsEnabled ? [] : prDarwinTestPlatforms);
/** @type {string[]} */
const testStepKeys = [];
{
Expand Down