Skip to content

[pre-commit.ci] pre-commit autoupdate #324

[pre-commit.ci] pre-commit autoupdate

[pre-commit.ci] pre-commit autoupdate #324

# 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