[pre-commit.ci] pre-commit autoupdate #324
This file contains 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
# Our minimal suite of tests that run on each pull request | |
name: PR Test | |
env: | |
COLUMNS: 120 | |
on: | |
pull_request: | |
branches: | |
- main | |
- "v*x" | |
concurrency: | |
group: test-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
code: | |
name: Code | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
task: [black, isort, ruff, import-lint] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.8 | |
- name: Install dependencies | |
run: | | |
pip install --upgrade pip | |
pip install tox | |
- name: Run task | |
run: tox -e ${{ matrix.task }} | |
manifest: | |
# make sure all necessary files will be bundled in the release | |
name: Check Manifest | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.8 | |
- name: Install dependencies | |
run: | | |
pip install --upgrade pip | |
pip install check-manifest | |
- name: Check Manifest | |
run: check-manifest | |
test: | |
name: ${{ matrix.platform }} ${{ matrix.python }} ${{ matrix.toxenv || matrix.backend }} ${{ matrix.MIN_REQ && 'min_req' }} | |
timeout-minutes: 30 | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [ubuntu-latest] | |
python: ["3.8", "3.9", "3.10"] | |
backend: [pyqt5, pyside2] | |
include: | |
# Windows py38 | |
- python: 3.8 | |
platform: windows-latest | |
backend: pyqt5 | |
- python: 3.8 | |
platform: windows-latest | |
backend: pyside2 | |
- python: 3.9 | |
platform: macos-latest | |
backend: pyqt5 | |
# minimum specified requirements | |
- python: 3.8 | |
platform: ubuntu-20.04 | |
backend: pyqt5 | |
MIN_REQ: 1 | |
# # test without any Qt backends | |
# - python: 3.8 | |
# platform: ubuntu-20.04 | |
# toxenv: headless-py38-linux | |
# test with PyQt6 | |
- python: 3.9 | |
platform: ubuntu-latest | |
backend: pyqt6 | |
- python: 3.9 | |
platform: ubuntu-latest | |
backend: pyside6 | |
# - python: '3.10' # fails because of napari - fixed by v0.5.0 | |
# platform: ubuntu-latest | |
# backend: pyside6 | |
steps: | |
- name: Cancel Previous Runs | |
uses: styfle/cancel-workflow-action@0.11.0 | |
with: | |
access_token: ${{ github.token }} | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
cache: "pip" | |
cache-dependency-path: setup.cfg | |
- uses: tlambert03/setup-qt-libs@v1 | |
# strategy borrowed from vispy for installing opengl libs on windows | |
- name: Install Windows OpenGL | |
if: runner.os == 'Windows' | |
run: | | |
git clone --depth 1 https://github.com/pyvista/gl-ci-helpers.git | |
powershell gl-ci-helpers/appveyor/install_opengl.ps1 | |
if (Test-Path -Path "C:\Windows\system32\opengl32.dll" -PathType Leaf) {Exit 0} else {Exit 1} | |
# tox and tox-gh-actions will take care of the "actual" installation | |
# of python dependendencies into a virtualenv. see tox.ini for more | |
- name: Install dependencies | |
run: | | |
pip install --upgrade pip | |
pip install setuptools tox tox-gh-actions | |
python tools/minreq.py | |
env: | |
# tools/minreq.py sets all deps to their minumim stated versions | |
# it is a no-op if MIN_REQ is not set | |
MIN_REQ: ${{ matrix.MIN_REQ }} | |
# here we pass off control of environment creation and running of tests to tox | |
# tox-gh-actions, installed above, helps to convert environment variables into | |
# tox "factors" ... limiting the scope of what gets tested on each platform | |
# for instance, on ubuntu-latest with python 3.8, it would be equivalent to this command: | |
# `tox -e py38-linux-pyqt,py38-linux-pyside` | |
# see tox.ini for more | |
- name: Test with tox | |
uses: aganders3/headless-gui@v1 | |
with: | |
run: python -m tox | |
env: | |
PLATFORM: ${{ matrix.platform }} | |
BACKEND: ${{ matrix.backend }} | |
TOXENV: ${{ matrix.toxenv }} | |
NUMPY_EXPERIMENTAL_ARRAY_FUNCTION: ${{ matrix.MIN_REQ || 1 }} | |
PYVISTA_OFF_SCREEN: True | |
MIN_REQ: ${{ matrix.MIN_REQ }} | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: upload pytest timing reports as json | |
path: | | |
./report-*.json | |
- name: Coverage | |
uses: codecov/codecov-action@v3 | |
test_pip_install: | |
name: ubuntu-latest 3.8 pip install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: napari-plot-from-github | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.9 | |
cache: "pip" | |
cache-dependency-path: napari-plot-from-github/setup.cfg | |
- uses: tlambert03/setup-qt-libs@v1 | |
- name: Install this commit | |
run: | | |
# pip install this git sha directly from github | |
pip install --upgrade pip | |
pip install ./napari-plot-from-github[all,testing] | |
- name: Test | |
uses: aganders3/headless-gui@v1 | |
with: | |
run: pytest --pyargs napari_plot --color=yes | |
test_examples: | |
name: test examples | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.9 | |
cache-dependency-path: setup.cfg | |
- uses: tlambert03/setup-qt-libs@v1 | |
- name: Install this commit | |
run: | | |
pip install --upgrade pip | |
pip install setuptools tox tox-gh-actions | |
- name: Test | |
uses: aganders3/headless-gui@v1 | |
with: | |
run: tox -e py39-linux-pyside2-examples |