Skip to content

NumPy 2 compatibility for tests and tools #214

NumPy 2 compatibility for tests and tools

NumPy 2 compatibility for tests and tools #214

name: Tests
concurrency:
group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.type }}
cancel-in-progress: true
on:
pull_request
jobs:
tests:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-13]
python-version: ['3.9']
qt-api: ['pyqt5']
vtk: ['vtk<9.3']
include:
- python-version: '3.12'
qt-api: 'pyqt6'
os: ubuntu-latest
vtk: 'vtk>=9.3'
- python-version: '3.12'
qt-api: 'pyqt6'
os: macos-14 # arm64
vtk: 'vtk>=9.3'
- python-version: '3.12'
qt-api: 'pyqt6'
os: windows-latest
vtk: 'vtk>=9.3'
- python-version: '3.11'
qt-api: 'pyqt6'
os: ubuntu-latest
vtk: 'vtk>=9.3'
- python-version: '3.10'
qt-api: 'pyside6'
os: ubuntu-latest
vtk: 'vtk<9.3'
- python-version: '3.10'
qt-api: 'pyside6'
os: windows-latest
vtk: 'vtk<9.3'
- python-version: '3.10'
qt-api: 'pyside6'
os: macos-13
vtk: 'vtk<9.3'
# A couple of old NumPys
- python-version: '3.12'
qt-api: 'pyside6'
os: ubuntu-latest
vtk: 'vtk>=9.3'
numpy: 'numpy==1.26.4'
- python-version: '3.12'
qt-api: 'pyside6'
os: windows-latest
vtk: 'vtk>=9.3'
numpy: 'numpy==1.26.4'
fail-fast: false
defaults:
run:
shell: bash -e {0}
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'
steps:
- uses: actions/checkout@v4
- name: Install Linux packages for Qt5/Qt6 support and start Xvfb
uses: pyvista/setup-headless-display-action@main
with:
qt: true
if: startsWith(matrix.os, 'ubuntu')
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
shell: bash
run: |
set -exo pipefail
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
- name: Install mayavi and tvtk
run: python -um pip install --no-build-isolation -ve .[app]
- name: Test Mayavi package
run: pytest -v --timeout=10 mayavi
- name: Test tvtk package
run: pytest -sv --timeout=60 tvtk