Skip to content

Fix macos workflow

Fix macos workflow #56

Workflow file for this run

name: linux
on: [push, pull_request]
jobs:
Build:
name: ${{matrix.name}} (${{matrix.config}})
runs-on: ${{matrix.os}}
env:
CMAKE_GENERATOR: Ninja
strategy:
fail-fast: false
matrix:
name: [
ubuntu-20.04-gcc-9,
ubuntu-20.04-gcc-10,
ubuntu-22.04-gcc-11,
ubuntu-22.04-gcc-12,
ubuntu-24.04-gcc-12,
ubuntu-24.04-gcc-13,
ubuntu-24.04-gcc-14,
ubuntu-20.04-clang-8,
ubuntu-20.04-clang-9,
ubuntu-20.04-clang-10,
ubuntu-22.04-clang-11,
ubuntu-22.04-clang-12,
ubuntu-22.04-clang-13,
ubuntu-22.04-clang-14,
ubuntu-22.04-clang-15,
ubuntu-24.04-clang-16,
ubuntu-24.04-clang-17,
ubuntu-24.04-clang-18
]
config: [Debug, Release]
include:
- name: ubuntu-20.04-gcc-9
os: ubuntu-20.04
compiler: gcc
version: 9
- name: ubuntu-20.04-gcc-10
os: ubuntu-20.04
compiler: gcc
version: 10
- name: ubuntu-22.04-gcc-11
os: ubuntu-22.04
compiler: gcc
version: 11
- name: ubuntu-22.04-gcc-12
os: ubuntu-22.04
compiler: gcc
version: 12
- name: ubuntu-24.04-gcc-12
os: ubuntu-24.04
compiler: gcc
version: 12
- name: ubuntu-24.04-gcc-13
os: ubuntu-24.04
compiler: gcc
version: 13
- name: ubuntu-24.04-gcc-14
os: ubuntu-24.04
compiler: gcc
version: 14
- name: ubuntu-20.04-clang-8
os: ubuntu-20.04
compiler: clang
version: 8
- name: ubuntu-20.04-clang-9
os: ubuntu-20.04
compiler: clang
version: 9
- name: ubuntu-20.04-clang-10
os: ubuntu-20.04
compiler: clang
version: 10
- name: ubuntu-22.04-clang-11
os: ubuntu-22.04
compiler: clang
version: 11
- name: ubuntu-22.04-clang-12
os: ubuntu-22.04
compiler: clang
version: 12
- name: ubuntu-22.04-clang-13
os: ubuntu-22.04
compiler: clang
version: 13
- name: ubuntu-22.04-clang-14
os: ubuntu-22.04
compiler: clang
version: 14
- name: ubuntu-22.04-clang-15
os: ubuntu-22.04
compiler: clang
version: 15
- name: ubuntu-24.04-clang-16
os: ubuntu-24.04
compiler: clang
version: 16
- name: ubuntu-24.04-clang-17
os: ubuntu-24.04
compiler: clang
version: 17
- name: ubuntu-24.04-clang-18
os: ubuntu-24.04
compiler: clang
version: 18
steps:
- uses: actions/checkout@v4
- name: Dependencies
run: |
sudo apt update
sudo apt install -y ninja-build
sudo apt install -y doxygen graphviz
sudo apt install -y libicu-dev
sudo apt install -y libsqlite3-dev
sudo apt install -y libx11-dev
if [ "${{matrix.compiler}}" = "gcc" ]; then
sudo apt install -y g++-${{matrix.version}}
echo "CC=gcc-${{matrix.version}}" >> $GITHUB_ENV
echo "CXX=g++-${{matrix.version}}" >> $GITHUB_ENV
else
sudo apt install -y clang-${{matrix.version}} lld-${{matrix.version}}
sudo apt install -y libc++-${{matrix.version}}-dev libc++abi-${{matrix.version}}-dev
# libunwind is new to clang-12, but not a dependency for the initial version
if [ "${{matrix.version}}" = "12" ]; then
sudo apt install -y libunwind-${{matrix.version}}-dev
fi
echo "CC=clang-${{matrix.version}}" >> $GITHUB_ENV
echo "CXX=clang++-${{matrix.version}}" >> $GITHUB_ENV
fi
- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build
- name: Configure CMake
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE:STRING=${{matrix.config}}
- name: Build
working-directory: ${{runner.workspace}}/build
run: cmake --build . --config ${{matrix.config}}
- name: Test
working-directory: ${{runner.workspace}}/build
run: ctest --output-on-failure -C ${{matrix.config}}
- name: Coverage
if: matrix.compiler == 'clang' && matrix.config == 'Debug'
working-directory: ${{runner.workspace}}/build
run: cmake --build . --target coverage
- name: Archive Coverage
if: matrix.compiler == 'clang' && matrix.config == 'Debug'
uses: actions/upload-artifact@v4
with:
name: coverage-linux.${{matrix.compiler}}-${{matrix.version}}
path: |
${{runner.workspace}}/build/tests/coverage.${{matrix.compiler}}-${{matrix.version}}.txt
${{runner.workspace}}/build/tests/coverage.overview.${{matrix.compiler}}-${{matrix.version}}.txt
overwrite: true
- name: Documentation
working-directory: ${{runner.workspace}}/build
run: cmake --build . --target documentation