name: linux on: [push, pull_request] jobs: build: runs-on: ${{matrix.config.os}} strategy: fail-fast: false matrix: config: # https://github.com/actions/runner-images/tree/main/images/ubuntu - { os: "ubuntu-20.04", cc: "gcc-10", cxx: "g++-10" } - { os: "ubuntu-20.04", cc: "clang-10", cxx: "clang++-10" } - { os: "ubuntu-24.04", cc: "gcc-14", cxx: "g++-14" } - { os: "ubuntu-24.04", cc: "clang-18", cxx: "clang++-18" } name: "${{matrix.config.cxx}}" steps: - name: Setup run: | sudo apt-get update -o Acquire::Retries=10 sudo apt-get install -o Acquire::Retries=10 -y cmake ninja-build ${{matrix.config.cc}} ${{matrix.config.cxx}} - name: Checkout uses: actions/checkout@v4 with: submodules: true - name: Build run: | cmake --preset linux-${{matrix.config.cc}} cmake --build --preset linux-${{matrix.config.cc}}-release - name: Test run: | ctest --preset linux-${{matrix.config.cc}}