Add ASAN/UBSAN build to CI #590
Workflow file for this run
This file contains 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
name: pantab tests | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
jobs: | |
code-checks: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- uses: pre-commit/action@v3.0.0 | |
clang-tidy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Install nanobind | |
run: python -m pip install nanobind | |
- name: Build project | |
run: | | |
cmake -S . -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON | |
cmake --build build | |
ln -s build/compile_commands.json | |
- name: Run clang-tidy | |
run: | | |
clang-tidy src/pantab/*.*pp --warnings-as-errors='*' | |
build_wheels: | |
name: Build wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-24.04, windows-2022, macos-13, macos-14] | |
steps: | |
- uses: actions/checkout@v4 | |
# Used to host cibuildwheel | |
- uses: actions/setup-python@v3 | |
- name: Build wheels for ${{ matrix.os }} | |
uses: pypa/cibuildwheel@v2.21.3 | |
env: | |
MACOSX_DEPLOYMENT_TARGET: "11.0" | |
test_no_tableauhyperapi: | |
name: Test wheels without tableauhyperapi on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-24.04, windows-2022, macos-13, macos-14] | |
steps: | |
- uses: actions/checkout@v4 | |
# Used to host cibuildwheel | |
- uses: actions/setup-python@v3 | |
- name: Build wheels for ${{ matrix.os }} | |
uses: pypa/cibuildwheel@v2.21.3 | |
env: | |
CIBW_TEST_REQUIRES: pytest pytest-xdist[psutil] pandas>=2.0.0 polars narwhals | |
MACOSX_DEPLOYMENT_TARGET: "11.0" | |
test_sanitizers: | |
name: ASAN/UBSAN test | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
# Used to host cibuildwheel | |
- uses: actions/setup-python@v3 | |
- name: Install dependencies | |
run: python -m pip install nanobind pytest pandas polars narwhals pytest-xdist[psutil] pyarrow | |
- name: Build library | |
run: | | |
cmake -S . -B build -DPANTAB_USE_SANITIZERS=ON -DCMAKE_BUILD_TYPE=RelWithDebugInfo | |
cmake --build build | |
- name: Test library | |
env: | |
ASAN_OPTIONS: "detect_leaks=0" | |
run: | | |
cd build/src | |
LD_PRELOAD="$(gcc -print-file-name=libasan.so)" python -m pytest -m "not skip_asan" -s ../../tests/ |