Skip to content

Commit e19c3a7

Browse files
authored
[libc++] Move some macOS CI jobs to Github actions (#89083)
This patch decouples macOS CI testing from BuildKite, which makes the maintenance of macOS CI easier and more accessible to all contributors. Right now, the macOS CI is running entirely on machines owned by the LLVM Foundation with only a small set of contributors having direct access to them. In particular, updating these machines is currently a very time-consuming manual process that requires taking the machines offline, and using Github-provided instances makes that an order of magnitude easier. The story for performing back-deployment testing still needs to be figured out, so for now we are retaining some jobs under BuildKite.
1 parent b959532 commit e19c3a7

File tree

2 files changed

+52
-56
lines changed

2 files changed

+52
-56
lines changed

.github/workflows/libcxx-build-and-test.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,42 @@ jobs:
191191
**/CMakeError.log
192192
**/CMakeOutput.log
193193
**/crash_diagnostics/*
194+
195+
macos:
196+
runs-on: macos-14
197+
needs: [ stage1 ]
198+
strategy:
199+
fail-fast: true
200+
matrix:
201+
config: [
202+
generic-cxx03,
203+
generic-cxx23,
204+
generic-modules,
205+
apple-configuration
206+
]
207+
steps:
208+
- uses: actions/checkout@v4
209+
- uses: maxim-lobanov/setup-xcode@v1
210+
with:
211+
xcode-version: 'latest-stable'
212+
- uses: seanmiddleditch/gha-setup-ninja@master
213+
- name: Build and test
214+
run: |
215+
python3 -m venv .venv
216+
source .venv/bin/activate
217+
python -m pip install psutil
218+
bash libcxx/utils/ci/run-buildbot ${{ matrix.config }}
219+
- uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
220+
if: always() # Upload artifacts even if the build or test suite fails
221+
with:
222+
name: macos-${{ matrix.config }}-results
223+
path: |
224+
**/test-results.xml
225+
**/*.abilist
226+
**/CMakeError.log
227+
**/CMakeOutput.log
228+
**/crash_diagnostics/*
229+
194230
windows:
195231
runs-on: windows-2022
196232
needs: [ stage1 ]

libcxx/utils/ci/buildkite-pipeline.yml

Lines changed: 16 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -39,45 +39,6 @@ definitions:
3939
steps:
4040
- group: ':mac: Apple'
4141
steps:
42-
- label: MacOS x86_64
43-
command: libcxx/utils/ci/run-buildbot generic-cxx23
44-
agents:
45-
queue: libcxx-builders
46-
os: macos
47-
arch: x86_64
48-
<<: *common
49-
50-
- label: MacOS arm64
51-
command: libcxx/utils/ci/run-buildbot generic-cxx23
52-
agents:
53-
queue: libcxx-builders
54-
os: macos
55-
arch: arm64
56-
<<: *common
57-
58-
- label: MacOS with Modules
59-
command: libcxx/utils/ci/run-buildbot generic-modules
60-
agents:
61-
queue: libcxx-builders
62-
os: macos
63-
<<: *common
64-
65-
- label: MacOS with C++03
66-
command: libcxx/utils/ci/run-buildbot generic-cxx03
67-
agents:
68-
queue: libcxx-builders
69-
os: macos
70-
<<: *common
71-
72-
# Build with the configuration we use to generate libc++.dylib on Apple platforms
73-
- label: Apple system configuration
74-
command: libcxx/utils/ci/run-buildbot apple-configuration
75-
agents:
76-
queue: libcxx-builders
77-
os: macos
78-
arch: arm64 # This can technically run on any architecture, but we have more resources on arm64 so we pin this job to arm64
79-
<<: *common
80-
8142
- label: Apple back-deployment macosx10.13
8243
command: libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.13
8344
agents:
@@ -102,6 +63,22 @@ steps:
10263
arch: x86_64 # TODO: Remove this once we are able to run back-deployment on arm64 again, since this isn't x86_64 specific
10364
<<: *common
10465

66+
# TODO: Re-enable this once we've figured out how to run back-deployment testing on arm64 on recent OSes
67+
# - label: "Apple back-deployment macosx11.0 arm64"
68+
# command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-11.0"
69+
# artifact_paths:
70+
# - "**/test-results.xml"
71+
# - "**/*.abilist"
72+
# agents:
73+
# queue: "libcxx-builders"
74+
# os: "macos"
75+
# arch: "arm64"
76+
# retry:
77+
# automatic:
78+
# - exit_status: -1 # Agent was lost
79+
# limit: 2
80+
# timeout_in_minutes: 120
81+
10582
- group: ARM
10683
steps:
10784
- label: AArch64
@@ -211,20 +188,3 @@ steps:
211188
queue: libcxx-builders
212189
os: android
213190
<<: *common
214-
215-
216-
# TODO: Re-enable this once we've figured out how to run back-deployment testing on arm64 on recent OSes
217-
# - label: "Apple back-deployment macosx11.0 arm64"
218-
# command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-11.0"
219-
# artifact_paths:
220-
# - "**/test-results.xml"
221-
# - "**/*.abilist"
222-
# agents:
223-
# queue: "libcxx-builders"
224-
# os: "macos"
225-
# arch: "arm64"
226-
# retry:
227-
# automatic:
228-
# - exit_status: -1 # Agent was lost
229-
# limit: 2
230-
# timeout_in_minutes: 120

0 commit comments

Comments
 (0)