[llvm] [libc++] Run macOS CI on self-hosted runners instead of Github ones (PR #210124)

via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 16 10:58:53 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-github-workflow

Author: Louis Dionne (ldionne)

<details>
<summary>Changes</summary>

This should increase our capacity and allow better turn around times, and potentially unblock additional test coverage.

Note that this change implies that the self-hosted runners provide a version of Xcode that is supported by libc++ (the latest released one).

When we create a release branch, we would need a way to pin down the version of Xcode used by the runners so the CI doesn't break if a newer Xcode introduces issues with the version of libc++ on the release branch. We don't currently have a solution to these problems, but I think the benefits outweigh the risk here.

---
Full diff: https://github.com/llvm/llvm-project/pull/210124.diff


1 Files Affected:

- (modified) .github/workflows/libcxx-build-and-test.yaml (+4-11) 


``````````diff
diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 7244d236877bd..f406b9e02f161 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -198,13 +198,9 @@ jobs:
       matrix:
         include:
         - config: generic-cxx03
-          os: macos-26
         - config: generic-cxx23
-          os: macos-26
         - config: generic-modules
-          os: macos-26
         - config: apple-configuration
-          os: macos-26
         # TODO: These jobs are intended to test back-deployment (building against ToT libc++ but running against an
         #       older system-provided libc++.dylib). Doing this properly would require building the test suite on a
         #       recent macOS using a recent Clang (hence recent Xcode), and then running the actual test suite on an
@@ -216,18 +212,15 @@ jobs:
         #       macOS versions as a way to avoid rotting that configuration, but it doesn't provide a lot of additional
         #       coverage.
         - config: apple-system
-          os: macos-26
         - config: apple-system-hardened
-          os: macos-26
-    runs-on: ${{ matrix.os }}
+    runs-on: ["self-hosted", "macOS", "ARM64", "26", "26.5"]
     steps:
       - uses: actions/checkout at de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
         with:
           persist-credentials: false
-      - uses: maxim-lobanov/setup-xcode at ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1.7.0
-        with:
-          # https://github.com/actions/runner-images/blob/main/images/macos/macos-26-Readme.md
-          xcode-version: '26.4'
+      - name: Install Ninja and CMake
+        run: |
+          brew install ninja cmake
       - name: Build and test
         run: |
           python3 -m venv .venv

``````````

</details>


https://github.com/llvm/llvm-project/pull/210124


More information about the llvm-commits mailing list