Skip to content

Commit 6849ba2

Browse files
committed
Add macOS testing to CI
1 parent b0d63fc commit 6849ba2

File tree

1 file changed

+40
-24
lines changed

1 file changed

+40
-24
lines changed

.github/workflows/test.yml

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,40 +16,56 @@ jobs:
1616
strategy:
1717
fail-fast: false
1818
matrix:
19-
compiler: [native, llvm]
20-
os: [ubuntu-latest, windows-latest]
19+
compiler: [native, llvm, gcc]
20+
os: [ubuntu-latest, windows-latest, macos-13, macos-15]
2121
exclude:
2222
- os: windows-latest
2323
compiler: llvm
24+
- os: ubuntu-latest
25+
compiler: gcc # gcc is already the default
2426

2527
steps:
26-
- name: Checkout code
27-
uses: actions/checkout@v4
28+
- name: Checkout code
29+
uses: actions/checkout@v4
2830

29-
- name: Install CMake
30-
uses: lukka/get-cmake@latest
31+
- name: Install CMake
32+
uses: lukka/get-cmake@latest
3133

32-
- name: Use LLVM and Clang
33-
run: |
34-
echo "CC=clang-18" >> $GITHUB_ENV
35-
echo "CXX=clang++-18" >> $GITHUB_ENV
36-
if: ${{ matrix.compiler != 'native' }}
34+
- name: Install Clang
35+
if: ${{ matrix.compiler == 'llvm' && (matrix.os == 'macos-13' || matrix.os == 'macos-15') }}
36+
run: |
37+
brew install llvm@18
38+
brew link --force --overwrite llvm@18
39+
echo "CC=$(brew --prefix llvm@18)/bin/clang" >> $GITHUB_ENV
40+
echo "CXX=$(brew --prefix llvm@18)/bin/clang++" >> $GITHUB_ENV
3741
38-
- name: Configure
39-
run: cmake -B build -DCPPSPEC_BUILD_TESTS=YES
42+
- name: Use LLVM and Clang
43+
run: |
44+
echo "CC=clang-18" >> $GITHUB_ENV
45+
echo "CXX=clang++-18" >> $GITHUB_ENV
46+
if: ${{ matrix.compiler == 'llvm' && (matrix.os != 'macos-13' || matrix.os != 'macos-15') }}
4047

41-
- name: Build
42-
run: cmake --build build --config Release
48+
- name: Use GCC
49+
run: |
50+
echo "CC=gcc-14" >> $GITHUB_ENV
51+
echo "CXX=g++-14" >> $GITHUB_ENV
52+
if: ${{ matrix.compiler == 'gcc' && (matrix.os != 'ubuntu-latest') }}
4353

44-
- name: Test
45-
run: ctest --test-dir build --build-config Release --output-on-failure
54+
- name: Configure
55+
run: cmake -B build -DCPPSPEC_BUILD_TESTS=YES
4656

47-
- name: Upload Test Results
48-
uses: actions/upload-artifact@v4
49-
if: always()
50-
with:
51-
name: Test Results (${{ matrix.os }} - ${{ matrix.compiler }})
52-
path: build/spec/results/*.xml
57+
- name: Build
58+
run: cmake --build build --config Release
59+
60+
- name: Test
61+
run: ctest --test-dir build --build-config Release --output-on-failure
62+
63+
- name: Upload Test Results
64+
uses: actions/upload-artifact@v4
65+
if: always()
66+
with:
67+
name: Test Results (${{ matrix.os }} - ${{ matrix.compiler }})
68+
path: build/spec/results/*.xml
5369

5470
publish-test-results:
5571
name: "Publish Tests Results"
@@ -72,4 +88,4 @@ jobs:
7288
- name: Publish Test Results
7389
uses: EnricoMi/publish-unit-test-result-action@v2
7490
with:
75-
files: "artifacts/**/*.xml"
91+
files: "artifacts/**/*.xml"

0 commit comments

Comments
 (0)