CI: add macos-26-intel (x86_64) to macOS CI matrix to catch Intel-only regressions
Summary
Folly's macOS CI (getdeps_mac.yml) only runs on macOS-latest (aarch64 / Apple Silicon). There is no x86_64 macOS CI coverage. This allowed a platform-specific bug (#2690) — an invalid .align 64 assembly directive that only fails on the Apple x86_64 assembler — to ship undetected.
Motivation
The current CI matrix has a gap:
| Runner | Architecture | In CI? | Catches x86_64 macOS bugs? |
|---|---|---|---|
ubuntu-24.04 |
x86_64 Linux | Yes | No (GAS accepts .align 64) |
macOS-latest |
aarch64 macOS | Yes | No (code excluded by #if !defined(__aarch64__)) |
macos-26-intel |
x86_64 macOS | No | Yes |
Code paths guarded by #if !defined(__aarch64__) are never compiled on aarch64 runners, so any x86_64-specific assembly, compiler, or linker issue is invisible to the current CI.
macos-26-intel is generally available (GA since February 2026) and supported until ~November 2028. Adding it to the macOS CI matrix would catch x86_64 macOS regressions for the next ~2 years.
Proposed solution
Add macos-26-intel as a second matrix dimension in getdeps_mac.yml:
strategy:
matrix:
os: [macOS-latest, macos-26-intel]
runs-on: ${{ matrix.os }}The main difference between the two runners is the Homebrew prefix:
- aarch64:
/opt/homebrew - x86_64:
/usr/local
Use brew --prefix llvm to resolve the LLVM path dynamically instead of hardcoding /opt/homebrew/opt/llvm/bin/clang.
Acceptance criteria
-
getdeps_mac.ymlruns on bothmacOS-latest(aarch64) andmacos-26-intel(x86_64) - Both matrix jobs build and test folly successfully
- No hardcoded architecture-specific paths (use
brew --prefixor equivalent)
Related
- #2690 — The
.align 64bug that this CI gap allowed to ship - #2691 — PR fixing the
.align 64bug with.balign 64
Source: facebook/folly