Test code blocks in docs as well #625
Workflow file for this run
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
| 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/ | |
| test_docs: | |
| name: Run doctests | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v3 | |
| - name: Install dependencies | |
| run: python -m pip install nanobind pytest pandas polars pytest-xdist[psutil] pytest-rst pyarrow tableauhyperapi | |
| - name: Build library | |
| run: | | |
| cmake -S . -B build | |
| cmake --build build | |
| - name: Run doctests | |
| run: | | |
| cd build/src | |
| python -m pytest ../../doc/ |