1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
name: check_qt_prereleases
on: workflow_dispatch
env:
PIP_DISABLE_PIP_VERSION_CHECK: 1
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
test-qt-prerelease:
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
qt-lib: [pyqt6, pyside]
steps:
- name: Checkout
uses: actions/checkout@v5
- name: "Install Linux VirtualDisplay"
if: runner.os == 'Linux'
run: |
sudo apt-get update -y --allow-releaseinfo-change
sudo apt-get install --no-install-recommends -y \
libxkbcommon-x11-0 \
x11-utils \
libyaml-dev \
libegl1-mesa \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render-util0 \
libxcb-xinerama0 \
libopengl0 \
libxcb-cursor0 \
- name: "Install Windows-Mesa OpenGL DLL"
if: runner.os == 'Windows'
run: |
curl -L --output mesa.7z --url https://github.com/pal1000/mesa-dist-win/releases/download/24.3.4/mesa3d-24.3.4-release-msvc.7z
7z x mesa.7z -o*
powershell.exe mesa\systemwidedeploy.cmd 1
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
- name: Install PySide6
if: matrix.qt-lib == 'pyside'
run: |
python -m pip install --no-index \
--find-links https://download.qt.io/snapshots/ci/pyside/dev/latest/pyside6/ \
--pre \
PySide6_Essentials
shell: bash
- name: Install PyQt6
if: matrix.qt-lib == 'pyqt6'
run: |
python -m pip install --index-url https://www.riverbankcomputing.com/pypi/simple/ \
--pre \
--only-binary=PyQt6 \
PyQt6
shell: bash
- name: Install Regular Dependencies
run: |
python -m pip install --pre numpy scipy pyopengl pytest .
- name: Install pytest-xvfb
run: |
python -m pip install pytest-xvfb
if: runner.os == 'Linux'
- 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 -m pyqtgraph.util.glinfo
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 -m pyqtgraph.util.glinfo
python -m pyqtgraph.util.get_resolution
if: runner.os != 'Linux'
- name: Run Tests
run: |
mkdir "$SCREENSHOT_DIR"
pytest tests -v
pytest pyqtgraph/examples -v
shell: bash
- name: Upload Screenshots
if: failure()
uses: actions/upload-artifact@v5
with:
name: Screenshots - Qt-Bindings ${{ matrix.qt-lib }} - ${{ matrix.os }})
path: ${{ env.SCREENSHOT_DIR }}
if-no-files-found: ignore
env:
SCREENSHOT_DIR: screenshots
|