Skip to content

Support VTK 9.5 and 9.6 #290

Support VTK 9.5 and 9.6

Support VTK 9.5 and 9.6 #290

name: Tests
concurrency:
group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.type }}
cancel-in-progress: true
on:
pull_request
jobs:
tests:
strategy:
matrix:
# Always test against the latest VTK, NumPy, and Qt bindings
os: [ubuntu-latest, windows-latest, macos-26-intel, macos-latest]
python-version: ['3.14']
qt-api: ['pyside6'] # prefer the modern bindings
vtk: ['vtk>=9.6'] # always prefer the latest
# Then add some backward compat checks
include:
- python-version: '3.13'
qt-api: 'pyside6'
os: ubuntu-latest
vtk: 'vtk==9.6'
- python-version: '3.12'
qt-api: 'pyside6'
os: ubuntu-latest
vtk: 'vtk==9.5'
- python-version: '3.11'
qt-api: 'pyside6'
os: ubuntu-latest
vtk: 'vtk==9.4'
numpy: 'numpy==2.3' # in1d (used by vtk) removed in 2.4+
- python-version: '3.10'
qt-api: 'pyqt6'
os: ubuntu-latest
vtk: 'vtk==9.3'
- python-version: '3.9'
qt-api: 'pyqt5'
os: ubuntu-latest
vtk: 'vtk==9.2.5'
fail-fast: false
defaults:
run:
shell: bash
timeout-minutes: 30 # these usually take < 8 minutes
runs-on: ${{ matrix.os }}
env:
ETS_TOOLKIT: qt4
QT_API: ${{ matrix.qt-api }}
TVTK_VERBOSE: 'true'
VTK_PARSER_VERBOSE: 'true'
PYTHONUNBUFFERED: '1'
steps:
- uses: actions/checkout@v7.0.0
with:
persist-credentials: false
- uses: pyvista/setup-headless-display-action@v4
with:
qt: true
if: startsWith(matrix.os, 'ubuntu')
- uses: actions/setup-python@v6.3.0
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade "${{ matrix.qt-api }}" "${{ matrix.numpy || 'numpy' }}" "${{ matrix.vtk }}" pillow pytest pytest-timeout traits traitsui --only-binary="numpy,vtk"
- run: python -m pip install --no-build-isolation -ve .[app]
- run: pytest -v --timeout=10 mayavi
- run: pytest -sv --timeout=60 tvtk