| name: CI |
| |
| on: |
| push: |
| paths-ignore: |
| - 'doc/**' |
| - 'scripts/**' |
| - 'LICENSE.txt' |
| - 'README.md' |
| pull_request: |
| paths-ignore: |
| - 'doc/**' |
| - 'scripts/**' |
| - 'LICENSE.txt' |
| - 'README.md' |
| |
| env: |
| CTEST_OUTPUT_ON_FAILURE: ON |
| CTEST_PARALLEL_LEVEL: 2 |
| |
| jobs: |
| clang-sanitiers: |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| runs-on: ubuntu-22.04 |
| |
| strategy: |
| fail-fast: false |
| matrix: |
| sanitizers: ["address", "thread", "memory", "undefined", "dataflow", "cfi", "kcfi", "safe-stack"] |
| |
| steps: |
| - uses: actions/checkout@v2 |
| |
| - name: Install |
| run: sudo apt-get install -y ninja-build |
| |
| - name: Generate |
| run: cmake -B build -S . -G Ninja -D CMAKE_CXX_COMPILER=clang++ -D CMAKE_EXPORT_COMPILE_COMMANDS=ON -D CMAKE_CXX_FLAGS="-fsanitize=${{ matrix.sanitizers }}" |
| |
| - name: Build |
| run: cmake --build build |
| |
| - name: Test |
| run: ctest --test-dir build --no-tests=error |