Skip to content

CI

CI #3004

Workflow file for this run

name: "CI"
concurrency:
group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.ref }}
cancel-in-progress: true
on:
push:
branches:
- "*"
pull_request:
branches:
- "*"
schedule:
- cron: "0 4 * * *"
jobs:
pip-pre:
name: ubuntu-latest / Python3.9 / ${{ matrix.qt }} / pyvista-main / qtpy-master
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
qt: ["None", "PySide2", "PySide6", "PyQt5", "PyQt6"]
defaults:
run:
shell: bash
env:
ALLOW_PLOTTING: "true"
PYTHON_VERSION: "3.9"
steps:
- uses: actions/checkout@v4
- uses: pyvista/setup-headless-display-action@main
with:
qt: true
pyvista: false
- uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- run: |
python -m pip install --upgrade pip wheel
pip install --upgrade -r requirements_test.txt
pip install --upgrade --progress-bar off https://github.com/pyvista/pyvista/zipball/main https://github.com/spyder-ide/qtpy/zipball/master
name: "Install dependencies with pip"
- run: pip install ${{ matrix.qt }}
name: "Install Qt binding"
if: matrix.qt != 'None'
- run: pip install "PyQt6-Qt6!=6.6.0,!=6.7.0" "PyQt6!=6.6.0"
name: "Install PyQt6-Qt6"
if: matrix.qt == 'PyQt6'
- run: pip install "PySide6!=6.7.0"
name: "Install PySide6"
if: matrix.qt == 'PySide6'
- run: |
pip install -e .
python -c "import pyvista; print(pyvista.Report())"
name: "Install pyvistaqt"
- run: python pyvistaqt/rwi.py
name: "Run QVTKRenderWidgetConeExample"
if: matrix.qt != 'None'
- run: pytest -v --cov pyvistaqt --cov-report html
name: "Run Tests"
if: matrix.qt != 'None'
- run: |
pip uninstall -y pytest-qt
pytest -v tests/test_qt.py
name: "Import without Qt"
if: matrix.qt == 'None'
- uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
if: success()
name: "Upload coverage to CodeCov"
pip:
name: ${{ matrix.os }} / pip / PyQt6 / pyvista-${{ matrix.pyvista }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest", "macos-13", "macos-latest", "windows-latest"]
pyvista: ["0"] # All OSes on latest release
python-version: ["3.12"]
include: # and Linux for older ones
- os: "ubuntu-latest"
pyvista: "0.34"
python-version: "3.10"
- os: "ubuntu-latest"
pyvista: "0.35"
python-version: "3.11"
- os: "ubuntu-latest"
pyvista: "0.36"
python-version: "3.12"
- os: "ubuntu-latest"
pyvista: "0.37"
python-version: "3.12"
- os: "ubuntu-latest"
pyvista: "0.38"
python-version: "3.12"
- os: "ubuntu-latest"
pyvista: "0.39"
python-version: "3.12"
- os: "ubuntu-latest"
pyvista: "0.40"
python-version: "3.12"
- os: "ubuntu-latest"
pyvista: "0.41"
python-version: "3.12"
- os: "ubuntu-latest"
pyvista: "0.42"
python-version: "3.12"
- os: "ubuntu-latest"
pyvista: "0.43"
python-version: "3.12"
defaults:
run:
shell: bash -e {0}
env:
ALLOW_PLOTTING: "true"
steps:
- uses: actions/checkout@v4
- uses: pyvista/setup-headless-display-action@main
with:
qt: true
pyvista: false
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
name: "Setup python"
- run: |
python -m pip install --upgrade pip wheel
pip install -r requirements_test.txt
name: "Install dependencies with pip"
- run: pip install "PyQt6-Qt6!=6.6.0,!=6.7.0" "PyQt6!=6.6.0"
name: "Install Qt binding"
- run: |
pip install --upgrade "pyvista==${{ matrix.pyvista }}.*"
if [[ "${{ matrix.pyvista }}" != "0" ]] && [[ "${{ matrix.pyvista }}" != "0.44" ]]; then
pip install "numpy<2"
fi
name: "Install PyVista ${{ matrix.pyvista }}"
- run: |
pip install -e .
python -c "import pyvista; print(pyvista.Report())"
name: "Install pyvistaqt"
- run: pytest -v --cov pyvistaqt --cov-report html
name: "Run Tests"
- uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
if: success()
name: "Upload coverage to CodeCov"
conda:
name: ${{ matrix.os }} / conda / ${{ matrix.qt }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest", "macos-13", "macos-latest", "windows-latest"]
qt: ["PyQt5"]
python-version: ["3.12"]
defaults:
run:
shell: bash
env:
ALLOW_PLOTTING: "true"
steps:
- uses: actions/checkout@v4
- uses: pyvista/setup-headless-display-action@main
with:
qt: true
pyvista: false
- uses: mamba-org/setup-micromamba@v2
with:
# https://github.com/mamba-org/setup-micromamba/issues/225
micromamba-version: 1.5.10-0
environment-file: "environment.yml"
environment-name: "pyvistaqt-env"
create-args: >-
python=${{ matrix.python-version }}
- shell: bash -el {0}
run: pip install ${{ matrix.qt }}
name: "Install Qt binding"
- shell: bash -el {0}
run: |
pip install -e .
python -c "import pyvista; print(pyvista.Report())"
name: "Install pyvistaqt"
- shell: bash -el {0}
run: pytest -v --cov pyvistaqt --cov-report html
name: "Run Tests"
- uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
if: success()
name: "Upload coverage to CodeCov"