fix(ci): migrate to the latest macOS runners (#8335)

* fix(ci): replace retiring macOS 14 runners

Use the supported macOS 15 ARM64 image before the November 2 retirement. Keep the Intel release runner and existing test/build/release commands unchanged.

* fix(ci): use the latest macOS runner images
This commit is contained in:
Mohamed Boudra
2026-10-31 10:05:16 +07:00
committed by GitHub
parent 0a549945b5
commit 7b03f0ad21
4 changed files with 36 additions and 6 deletions
+31 -1
View File
@@ -24,7 +24,10 @@ const gatedCiJobs = new Map([
"server-integration-windows",
{ name: "server-integration (windows-latest)", contract: "server" },
],
["server-tests-macos", { name: "server-tests (macos-14, file observation)", contract: "server" }],
[
"server-tests-macos",
{ name: "server-tests (macos-latest, file observation)", contract: "server" },
],
["desktop-tests-ubuntu", { name: "desktop-tests (ubuntu-latest)", contract: "desktop" }],
["desktop-tests-windows", { name: "desktop-tests (windows-latest)", contract: "desktop" }],
["app-tests", { name: "app-tests", contract: "app" }],
@@ -649,3 +652,30 @@ process.exit(code);
});
}
});
// GitHub retires macOS 14 on 2026-11-02; brownouts already reject these jobs.
test("workflows avoid retired macOS 14 runners", () => {
for (const path of filesUnder(".github/workflows", (candidate) => /\.ya?ml$/.test(candidate))) {
assert.doesNotMatch(
readFileSync(new URL(path, repoRoot), "utf8"),
/macos-14(?:-large|-xlarge)?\b/,
path,
);
}
});
test("macOS jobs use latest runners while preserving release architectures", () => {
for (const [workflow, jobId] of [
[ciWorkflowPath, "server-tests-macos"],
[nixWorkflowPath, "build-desktop-darwin"],
]) {
assert.match(
jobBlocks(readFileSync(workflow, "utf8")).get(jobId).join("\n"),
/^ runs-on: macos-latest$/m,
);
}
const release = readFileSync(new URL(".github/workflows/desktop-release.yml", repoRoot), "utf8");
assert.match(release, /runner: macos-latest\n\s+electron_arch: arm64/);
// GitHub has no standard macos-latest-intel alias; use the newest Intel image.
assert.match(release, /runner: macos-26-intel\n\s+electron_arch: x64/);
});