name: CI on: push: pull_request: jobs: tests: name: Test Python ${{ matrix.python-version }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} permissions: contents: read strategy: fail-fast: false matrix: include: - os: ubuntu-latest python-version: '3.13' - os: ubuntu-latest python-version: '3.12' - os: windows-latest python-version: '3.12' - os: macos-latest python-version: '3.12' steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install system dependencies (Linux) if: runner.os == 'Linux' run: | sudo apt-get update sudo apt-get install -y pandoc graphviz - name: Install system dependencies (macOS) if: runner.os == 'macOS' run: brew install pandoc graphviz - name: Install pip tools run: python -m pip install --upgrade pip setuptools wheel - name: Install requirements run: pip install -r requirements.txt - name: Install requirements-dev run: pip install -r requirements-dev.txt - name: Build wheel run: python -m pip wheel . --wheel-dir dist - name: Install package run: pip install . - name: Run tests run: python -m pytest --durations=10 --ignore-glob=**LONG*.py --ignore-glob=**notebook*.py - uses: actions/upload-artifact@v4 with: name: wheel-${{ matrix.os }}-${{ matrix.python-version }} path: dist/