Skip to content

Commit 2b7b4ee

Browse files
committed
[libc++] Move some macOS CI jobs to Github actions
This is an attempt to decouple macOS CI testing from BuildKite, which would make 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. 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 51d4980 commit 2b7b4ee

File tree

2 files changed

+17
-351
lines changed

2 files changed

+17
-351
lines changed

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

Lines changed: 16 additions & 168 deletions
Original file line numberDiff line numberDiff line change
@@ -47,188 +47,36 @@ env:
4747

4848

4949
jobs:
50-
stage1:
51-
if: github.repository_owner == 'llvm'
52-
runs-on: libcxx-runners-8-set
53-
continue-on-error: false
50+
macos:
51+
runs-on: macos-14
5452
strategy:
5553
fail-fast: false
5654
matrix:
5755
config: [
58-
'generic-cxx03',
59-
'generic-cxx26',
60-
'generic-modules'
56+
generic-cxx03,
57+
generic-cxx23,
58+
generic-modules,
59+
apple-configuration
6160
]
62-
cc: [ 'clang-19' ]
63-
cxx: [ 'clang++-19' ]
64-
include:
65-
- config: 'generic-gcc'
66-
cc: 'gcc-14'
67-
cxx: 'g++-14'
6861
steps:
6962
- uses: actions/checkout@v4
70-
- name: ${{ matrix.config }}.${{ matrix.cxx }}
71-
run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
72-
env:
73-
CC: ${{ matrix.cc }}
74-
CXX: ${{ matrix.cxx }}
75-
- uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
76-
if: always()
63+
- uses: maxim-lobanov/setup-xcode@v1
7764
with:
78-
name: ${{ matrix.config }}-${{ matrix.cxx }}-results
79-
path: |
80-
**/test-results.xml
81-
**/*.abilist
82-
**/CMakeError.log
83-
**/CMakeOutput.log
84-
**/crash_diagnostics/*
85-
stage2:
86-
if: github.repository_owner == 'llvm'
87-
runs-on: libcxx-runners-8-set
88-
needs: [ stage1 ]
89-
continue-on-error: false
90-
strategy:
91-
fail-fast: false
92-
matrix:
93-
config: [
94-
'generic-cxx11',
95-
'generic-cxx14',
96-
'generic-cxx17',
97-
'generic-cxx20',
98-
'generic-cxx23'
99-
]
100-
cc: [ 'clang-19' ]
101-
cxx: [ 'clang++-19' ]
102-
include:
103-
- config: 'generic-gcc-cxx11'
104-
cc: 'gcc-14'
105-
cxx: 'g++-14'
106-
- config: 'generic-cxx23'
107-
cc: 'clang-17'
108-
cxx: 'clang++-17'
109-
- config: 'generic-cxx26'
110-
cc: 'clang-18'
111-
cxx: 'clang++-18'
112-
steps:
113-
- uses: actions/checkout@v4
114-
- name: ${{ matrix.config }}
115-
run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
116-
env:
117-
CC: ${{ matrix.cc }}
118-
CXX: ${{ matrix.cxx }}
65+
xcode-version: 'latest-stable'
66+
- uses: seanmiddleditch/gha-setup-ninja@master
67+
- name: Build and test
68+
run: |
69+
python3 -m venv .venv
70+
source .venv/bin/activate
71+
python3 -m pip install psutil
72+
bash libcxx/utils/ci/run-buildbot ${{ matrix.config }}
11973
- uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
12074
if: always() # Upload artifacts even if the build or test suite fails
12175
with:
122-
name: ${{ matrix.config }}-${{ matrix.cxx }}-results
123-
path: |
124-
**/test-results.xml
125-
**/*.abilist
126-
**/CMakeError.log
127-
**/CMakeOutput.log
128-
**/crash_diagnostics/*
129-
stage3:
130-
if: github.repository_owner == 'llvm'
131-
needs: [ stage1, stage2 ]
132-
continue-on-error: false
133-
strategy:
134-
fail-fast: false
135-
max-parallel: 8
136-
matrix:
137-
config: [
138-
'generic-abi-unstable',
139-
'generic-hardening-mode-debug',
140-
'generic-hardening-mode-extensive',
141-
'generic-hardening-mode-fast',
142-
'generic-hardening-mode-fast-with-abi-breaks',
143-
'generic-merged',
144-
'generic-modules-lsv',
145-
'generic-no-exceptions',
146-
'generic-no-experimental',
147-
'generic-no-filesystem',
148-
'generic-no-localization',
149-
'generic-no-random_device',
150-
'generic-no-threads',
151-
'generic-no-tzdb',
152-
'generic-no-unicode',
153-
'generic-no-wide-characters',
154-
'generic-no-rtti',
155-
'generic-optimized-speed',
156-
'generic-static',
157-
# TODO Find a better place for the benchmark and bootstrapping builds to live. They're either very expensive
158-
# or don't provide much value since the benchmark run results are too noise on the bots.
159-
'benchmarks',
160-
'bootstrapping-build'
161-
]
162-
machine: [ 'libcxx-runners-8-set' ]
163-
include:
164-
- config: 'generic-cxx26'
165-
machine: libcxx-runners-8-set
166-
- config: 'generic-asan'
167-
machine: libcxx-runners-8-set
168-
- config: 'generic-tsan'
169-
machine: libcxx-runners-8-set
170-
- config: 'generic-ubsan'
171-
machine: libcxx-runners-8-set
172-
# Use a larger machine for MSAN to avoid timeout and memory allocation issues.
173-
- config: 'generic-msan'
174-
machine: libcxx-runners-8-set
175-
runs-on: ${{ matrix.machine }}
176-
steps:
177-
- uses: actions/checkout@v4
178-
- name: ${{ matrix.config }}
179-
run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
180-
env:
181-
CC: clang-19
182-
CXX: clang++-19
183-
- uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
184-
if: always()
185-
with:
186-
name: ${{ matrix.config }}-results
76+
name: macos-${{ matrix.config }}-results
18777
path: |
18878
**/test-results.xml
18979
**/*.abilist
19080
**/CMakeError.log
19181
**/CMakeOutput.log
19282
**/crash_diagnostics/*
193-
windows:
194-
runs-on: windows-2022
195-
needs: [ stage1 ]
196-
strategy:
197-
fail-fast: false
198-
matrix:
199-
include:
200-
- { config: clang-cl-dll, mingw: false }
201-
- { config: clang-cl-static, mingw: false }
202-
- { config: clang-cl-no-vcruntime, mingw: false }
203-
- { config: clang-cl-debug, mingw: false }
204-
- { config: clang-cl-static-crt, mingw: false }
205-
- { config: mingw-dll, mingw: true }
206-
- { config: mingw-static, mingw: true }
207-
- { config: mingw-dll-i686, mingw: true }
208-
steps:
209-
- uses: actions/checkout@v4
210-
- name: Install dependencies
211-
run: |
212-
choco install -y ninja
213-
pip install psutil
214-
- name: Install a current LLVM
215-
if: ${{ matrix.mingw != true }}
216-
run: |
217-
choco install -y llvm --version=18.1.6 --allow-downgrade
218-
- name: Install llvm-mingw
219-
if: ${{ matrix.mingw == true }}
220-
run: |
221-
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20240606/llvm-mingw-20240606-ucrt-x86_64.zip
222-
powershell Expand-Archive llvm-mingw*.zip -DestinationPath .
223-
del llvm-mingw*.zip
224-
mv llvm-mingw* c:\llvm-mingw
225-
echo "c:\llvm-mingw\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
226-
- name: Add Git Bash to the path
227-
run: |
228-
echo "c:\Program Files\Git\usr\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
229-
- name: Set up the MSVC dev environment
230-
if: ${{ matrix.mingw != true }}
231-
uses: ilammy/msvc-dev-cmd@v1
232-
- name: Build and test
233-
run: |
234-
bash libcxx/utils/ci/run-buildbot ${{ matrix.config }}

0 commit comments

Comments
 (0)