@@ -22,28 +22,52 @@ jobs:
2222 - run : pipx run check-manifest
2323
2424 lint :
25- runs-on : ubuntu-latest
25+ # We lint on Windows so we can lint wx code.
26+ runs-on : windows-latest
2627 steps :
2728 - uses : actions/checkout@v4
2829 - uses : astral-sh/setup-uv@v6
2930 with :
3031 enable-cache : true
3132 python-version : " 3.13"
32- - uses : tox-dev/action-pre-commit-uv@v1
33- with :
34- extra_args : --all-files --verbose
33+ - run : uvx pre-commit run --all-files --verbose
3534
3635 test :
37- name : test ${{ matrix.os }} py${{ matrix.python-version }} ${{ matrix.gfx }}
36+ name : test ${{ matrix.os }} py${{ matrix.python-version }} ${{ matrix.gfx }} ${{ matrix.canvas }}
3837 runs-on : ${{ matrix.os }}
39- env :
40- UV_FROZEN : 1
4138 strategy :
4239 fail-fast : false
4340 matrix :
4441 os : [ubuntu-latest, macos-latest, windows-latest]
45- python-version : ["3.10", "3.11", "3.12", "3. 13"]
42+ python-version : ["3.10", "3.13"]
4643 gfx : [pygfx, vispy]
44+ canvas : [pyqt, jupyter, wx]
45+ exclude :
46+ # glfw.GLFWError: (65545) b'NSGL: Failed to find a suitable pixel format'
47+ # (Under the hood GLFW gives vispy the OpenGL context.)
48+ - os : macos-latest
49+ canvas : jupyter
50+ gfx : vispy
51+ # wxpython does not build wheels for ubuntu or macos-latest py3.10
52+ - os : ubuntu-latest
53+ canvas : wx
54+ - os : macos-latest
55+ canvas : wx
56+ python-version : " 3.10"
57+ # FIXME: On CI: AttributeError: 'Shared' object has no attribute '_device'. Did you mean: 'device'?
58+ # Related to pygfx v0.13.0
59+ # Tests pass locally
60+ - os : windows-latest
61+ gfx : pygfx
62+ include :
63+ - python-version : " 3.11"
64+ gfx : pygfx
65+ canvas : pyqt
66+ os : ubuntu-latest
67+ - python-version : " 3.12"
68+ gfx : pygfx
69+ canvas : pyqt
70+ os : ubuntu-latest
4771
4872 steps :
4973 - uses : actions/checkout@v4
6185 sudo apt install -y libegl1-mesa-dev libgl1-mesa-dri libxcb-xfixes0-dev mesa-vulkan-drivers
6286
6387 - name : Install dependencies
64- run : uv sync --no-dev --group test --extra ${{ matrix.gfx }} ${{ matrix.python-version != '3.10' && '--extra imgui' || '' }}
88+ run : uv sync --no-dev --group test --extra ${{ matrix.gfx }} --extra ${{matrix.canvas}} ${{ matrix.python-version != '3.10' && '--extra imgui' || '' }} ${{ matrix.canvas == 'pyqt' && '--group testqt ' || '' }}
6589
6690 - name : Test
6791 shell : bash
7094 - name : Upload coverage
7195 uses : actions/upload-artifact@v4
7296 with :
73- name : covreport-${{ matrix.os }}-py${{ matrix.python-version }}-${{ matrix.gfx }}
97+ name : covreport-${{ matrix.os }}-py${{ matrix.python-version }}-${{ matrix.gfx }}-${{ matrix.canvas }}
7498 path : ./.coverage*
7599 include-hidden-files : true
76100
0 commit comments