test: verify generated analysis artifacts #74
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Synthetic-only CI: builds the project and runs the smoke test on every push | |
| # and pull request. | |
| # | |
| # This workflow never downloads Nasdaq market data and never runs benchmarks. | |
| # The bench_smoke target is compiled to prove the benchmark infrastructure | |
| # builds, but it is not executed and its output is never recorded. | |
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| jobs: | |
| build-and-test: | |
| name: ${{ matrix.preset }} | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| preset: [debug, asan-ubsan, release] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Ninja | |
| run: sudo apt-get update && sudo apt-get install -y ninja-build | |
| # Older ASan runtimes reject the high mmap randomization entropy on | |
| # recent Ubuntu kernels; pin it to a value ASan accepts. | |
| - name: Lower ASLR entropy for ASan | |
| if: matrix.preset == 'asan-ubsan' | |
| run: sudo sysctl -w vm.mmap_rnd_bits=28 | |
| - name: Configure | |
| run: cmake --preset ${{ matrix.preset }} | |
| - name: Build | |
| run: cmake --build --preset ${{ matrix.preset }} | |
| - name: Test | |
| run: ctest --preset ${{ matrix.preset }} |