name: test pyqtgraph on: [push] jobs: build: strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] qt-lib: [pyqt5, pyside2] python-version: [3.7, 3.8, 3.9] include: - python-version: "3.7" qt-version: "~=5.12.0" numpy-version: "~=1.17.0" - python-version: "3.8" qt-version: "~=5.15.0" numpy-version: "~=1.19.0" - python-version: "3.9" qt-version: "" numpy-version: "" runs-on: ${{ matrix.os }} steps: - 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.1.0/mesa3d-19.1.0-release-msvc.exe 7z x mesa3d-19.1.0-release-msvc.exe 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: | pip install ${{ matrix.qt-lib }}${{ matrix.qt-version }} numpy${{ matrix.numpy-version }} scipy pyopengl h5py six matplotlib pip install . pip install pytest pytest-cov coverage - name: "Install Linux VirtualDisplay" if: runner.os == 'Linux' run: | sudo apt-get install -y libxkbcommon-x11-0 xvfb x11-utils sudo apt-get install --no-install-recommends -y libyaml-dev libegl1-mesa libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 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 pip list echo pyqtgraph system info python -c "import pyqtgraph as pg; pg.systemInfo()" echo display information shell: bash env: QT_DEBUG_PLUGINS: 1 - name: Run Tests run: | pytest . -v \ --junitxml=junit/test-results.xml \ --cov pyqtgraph --cov-report=xml --cov-report=html shell: bash env: AZURE: 1 - name: Upload Unit Test Results if: always() uses: actions/upload-artifact@v2 with: name: Unit Test Results (Python ${{ matrix.python-version }} - Qt-Bindings ${{ matrix.qt-lib }} - OS ${{ matrix.os }}) path: junit/test-results.xml