name: Build and Test on: [push, pull_request] jobs: build: runs-on: ubuntu-latest strategy: matrix: compiler: [g++, clang++] build_type: [Debug] steps: - uses: actions/checkout@v4 - name: Install latest CMake run: | python3 -m venv $HOME/cmake-venv source $HOME/cmake-venv/bin/activate pip install --upgrade pip pip install cmake ninja echo "$HOME/cmake-venv/bin" >> $GITHUB_PATH - name: Configure with sanitizers run: | SAN="-fsanitize=address,undefined -fno-omit-frame-pointer" cmake -S . -B build \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} \ -DCMAKE_C_FLAGS="$SAN" \ -DCMAKE_CXX_FLAGS="$SAN" - name: Build run: cmake --build build -j - name: Run tests working-directory: build run: ctest --output-on-failure -V