👷 Update macOS CI to support Apple Silicon runners #2306
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: macOS CI | |
on: | |
push: | |
branches: [ 'main' ] | |
paths: | |
- '**/*.hpp' | |
- '**/*.cpp' | |
- '**/*.cmake' | |
- '**/CMakeLists.txt' | |
- 'libs/**' | |
- '.github/workflows/macos.yml' | |
pull_request: | |
branches: [ 'main' ] | |
paths: | |
- '**/*.hpp' | |
- '**/*.cpp' | |
- '**/*.cmake' | |
- '**/CMakeLists.txt' | |
- 'libs/**' | |
- '.github/workflows/macos.yml' | |
merge_group: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
defaults: | |
run: | |
shell: bash | |
env: | |
Z3_VERSION: 4.10.0 | |
jobs: | |
build_and_test: | |
strategy: | |
matrix: | |
os: [ macos-12, macos-13, macos-14 ] | |
compiler: [ g++-11, g++-12, g++-13, clang++ ] | |
build_type: [ Debug, Release ] | |
include: | |
- os: macos-12 | |
architecture: x64 | |
- os: macos-13 | |
architecture: x64 | |
- os: macos-14 | |
architecture: arm64 | |
- compiler: clang++ | |
ccompiler: clang | |
- compiler: g++-11 | |
ccompiler: gcc-11 | |
- compiler: g++-12 | |
ccompiler: gcc-12 | |
exclude: | |
- os: macos-14 | |
compiler: g++-11 | |
- os: macos-14 | |
compiler: g++-12 | |
- os: macos-14 | |
compiler: g++-13 | |
name: ${{matrix.os}} with ${{matrix.compiler}} (${{matrix.build_type}} mode) | |
runs-on: ${{matrix.os}} | |
steps: | |
- name: Clone Repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
# Setup TBB for parallel STL algorithms via Homebrew (macOS 11 is no longer supported) | |
- if: matrix.os != 'macos-11' | |
name: Setup TBB | |
run: brew install tbb | |
# Use XCode 13.2 as a workaround because XCode 14.0 seems broken | |
- if: matrix.os == 'macos-12' | |
name: Setup XCode version | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: "^13.2" | |
- if: matrix.os == 'macos-13' || matrix.os == 'macos-14' | |
name: Setup XCode version | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: "^14.2" | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: '${{matrix.os}}-${{matrix.compiler}}-${{matrix.build_type}}' | |
variant: ccache | |
save: true | |
max-size: 10G | |
- name: Setup Z3 Solver | |
id: z3 | |
uses: cda-tum/setup-z3@v1 | |
with: | |
version: ${{env.Z3_VERSION}} | |
platform: macOS | |
architecture: ${{matrix.architecture}} | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{github.workspace}}/build | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/build | |
run: > | |
cmake ${{github.workspace}} | |
-DCMAKE_CXX_COMPILER=${{matrix.compiler}} | |
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} | |
-DFICTION_ENABLE_UNITY_BUILD=ON | |
-DFICTION_ENABLE_PCH=ON | |
-DFICTION_CLI=ON | |
-DFICTION_TEST=ON | |
-DFICTION_BENCHMARK=OFF | |
-DFICTION_EXPERIMENTS=ON | |
-DFICTION_Z3=ON | |
-DFICTION_PROGRESS_BARS=OFF | |
-DFICTION_WARNINGS_AS_ERRORS=OFF | |
-DMOCKTURTLE_EXAMPLES=OFF | |
- name: Build | |
working-directory: ${{github.workspace}}/build | |
run: cmake --build . -j3 # all macOS runners provide at least 3 cores | |
- name: Test | |
working-directory: ${{github.workspace}}/build | |
# Execute tests defined by the CMake configuration. | |
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | |
run: ctest -C ${{matrix.build_type}} --verbose --output-on-failure --parallel 3 |