| name: C/C++ CI |
| |
| on: [push, pull_request] |
| |
| env: |
| BUILD_TYPE: Release |
| |
| jobs: |
| build: |
| name: ${{ matrix.config.name }} |
| runs-on: ${{ matrix.config.os }} |
| strategy: |
| fail-fast: false |
| matrix: |
| config: |
| - { |
| name: "MacOS Latest, Clang", |
| os: macos-latest, |
| test_target: test, |
| cc: "clang", cxx: "clang++" |
| } |
| - { |
| name: "Ubuntu Latest, GCC", |
| os: ubuntu-latest, |
| test_target: test, |
| cc: "gcc", cxx: "g++" |
| } |
| - { |
| name: "Windows Latest, MSVC", |
| os: windows-latest, |
| test_target: RUN_TESTS, |
| cc: "cl", cxx: "cl", |
| environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat" |
| } |
| #- { |
| # name: "Windows Latest, MinGW+gcc", |
| # os: windows-latest, |
| # cc: "gcc", cxx: "g++" |
| # } |
| |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v4 |
| with: |
| submodules: true |
| persist-credentials: false |
| - name: Configure |
| run: cmake -B build -S . -DCMAKE_INSTALL_PREFIX=./install_test |
| - name: Build C++ unit tests |
| run: cmake --build build --config Release |
| - name: Run C++ tests |
| run: cmake --build build --config Release --target ${{ matrix.config.test_target }} |
| - name: Install headers |
| run: cmake --build build -t install |