d974544053
There seems to be some unintentional side effect when running examples and the same time. This change breaks up the execution into two separate calls to pytest in an attempt to bypass whatever issue is being created.
130 lines
5.4 KiB
YAML
130 lines
5.4 KiB
YAML
name: main
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-20.04 , windows-latest, macos-latest]
|
|
qt-lib: [pyqt, pyside]
|
|
python-version: [3.7, 3.8, 3.9]
|
|
include:
|
|
- python-version: "3.7"
|
|
qt-lib: "pyqt"
|
|
qt-version: "PyQt5~=5.12.0"
|
|
numpy-version: "~=1.17.0"
|
|
- python-version: "3.7"
|
|
qt-lib: "pyside"
|
|
qt-version: "PySide2~=5.12.0"
|
|
numpy-version: "~=1.17.0"
|
|
- python-version: "3.8"
|
|
qt-lib: "pyqt"
|
|
qt-version: "PyQt5~=5.15.0"
|
|
numpy-version: "~=1.20.0"
|
|
- python-version: "3.8"
|
|
qt-lib: "pyside"
|
|
qt-version: "PySide2~=5.15.0"
|
|
numpy-version: "~=1.20.0"
|
|
- python-version: "3.9"
|
|
qt-lib: "pyqt"
|
|
qt-version: "PyQt6"
|
|
numpy-version: "~=1.20.0"
|
|
- python-version: "3.9"
|
|
qt-lib: "pyside"
|
|
qt-version: "PySide6"
|
|
numpy-version: "~=1.20.0"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Setup Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
# Semantic version range syntax or exact version of a Python version
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: "Install Windows-Mesa OpenGL DLL"
|
|
if: runner.os == 'Windows'
|
|
run: |
|
|
curl -LJO https://github.com/pal1000/mesa-dist-win/releases/download/19.2.7/mesa3d-19.2.7-release-msvc.7z
|
|
7z x mesa3d-19.2.7-release-msvc.7z
|
|
cd x64
|
|
xcopy opengl32.dll C:\windows\system32\mesadrv.dll*
|
|
xcopy opengl32.dll C:\windows\syswow64\mesadrv.dll*
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DLL /t REG_SZ /d "mesadrv.dll" /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DriverVersion /t REG_DWORD /d 1 /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Flags /t REG_DWORD /d 1 /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Version /t REG_DWORD /d 2 /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DLL /t REG_SZ /d "mesadrv.dll" /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DriverVersion /t REG_DWORD /d 1 /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Flags /t REG_DWORD /d 1 /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Version /t REG_DWORD /d 2 /f
|
|
shell: cmd
|
|
- name: Install Dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip setuptools wheel
|
|
python -m pip install ${{ matrix.qt-version }} numpy${{ matrix.numpy-version }} scipy pyopengl h5py matplotlib numba
|
|
python -m pip install --use-feature=in-tree-build .
|
|
python -m pip install pytest
|
|
- name: "Install Linux VirtualDisplay"
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
sudo apt-get update -y
|
|
sudo apt-get install -y libxkbcommon-x11-0 x11-utils
|
|
sudo apt-get install --no-install-recommends -y libyaml-dev libegl1-mesa libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0
|
|
sudo apt-get install -y libopengl0
|
|
python -m pip install pytest-xvfb
|
|
- name: 'Debug Info'
|
|
run: |
|
|
echo python location: `which python`
|
|
echo python version: `python --version`
|
|
echo pytest location: `which pytest`
|
|
echo installed packages
|
|
python -m pip list
|
|
echo pyqtgraph system info
|
|
python -c "import pyqtgraph as pg; pg.systemInfo()"
|
|
shell: bash
|
|
env:
|
|
QT_DEBUG_PLUGINS: 1
|
|
- name: 'XVFB Display Info'
|
|
run: |
|
|
xvfb-run --server-args="-screen 0, 1920x1200x24 -ac +extension GLX +render -noreset" python -c "from pyqtgraph.opengl.glInfo import GLTest"
|
|
xvfb-run --server-args="-screen 0, 1920x1200x24 -ac +extension GLX +render -noreset" python -m pyqtgraph.util.get_resolution
|
|
if: runner.os == 'Linux'
|
|
- name: 'Display Info'
|
|
run: |
|
|
python -c "from pyqtgraph.opengl.glInfo import GLTest"
|
|
python -m pyqtgraph.util.get_resolution
|
|
if: runner.os != 'Linux'
|
|
- name: Run Tests
|
|
run: |
|
|
mkdir $SCREENSHOT_DIR
|
|
pytest tests -v \
|
|
--junitxml pytest.xml
|
|
pytest examples -v
|
|
shell: bash
|
|
- name: Upload Screenshots
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Screenshots (Python ${{ matrix.python-version }} - Qt-Bindings ${{ matrix.qt-lib }} - OS ${{ matrix.os }})
|
|
path: $SCREENSHOT_DIR
|
|
if-no-files-found: ignore
|
|
env:
|
|
SCREENSHOT_DIR: ./screenshots
|
|
|
|
build-wheel:
|
|
name: build wheel
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Setup Python 3.9
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.9'
|
|
- name: Build Wheel
|
|
run: |
|
|
python -m pip install setuptools wheel
|
|
python setup.py bdist_wheel
|