@@ -19,16 +19,30 @@ jobs:
1919 runs-on : ${{ matrix.image }}
2020 strategy :
2121 matrix :
22- os : [Ubuntu, Windows, MacOS ]
23- python-version : ["3.8", "3.9", "3.10"]
22+ os : [ubuntu, windows, macos-x86_64, macos-arm64 ]
23+ python-version : ["3.8", "3.9", "3.10", "3.11" ]
2424 qt-version : ["pyside2", "pyside6", "pyqt5", "pyqt6"]
2525 include :
26- - os : Ubuntu
26+ - os : ubuntu
2727 image : ubuntu-24.04
28- - os : Windows
28+ - os : windows
2929 image : windows-2022
30- - os : MacOS
30+ - os : macos-x86_64
31+ image : macos-13
32+ - os : macos-arm64
3133 image : macos-14
34+ exclude :
35+ # pyside2 does not publish arm64 packages
36+ - os : macos-arm64
37+ qt-version : pyside2
38+ # pyside2 requires python <3.11
39+ - python-version : " 3.11"
40+ qt-version : pyside2
41+ # pyside6 and pyqt6 require python >=3.9
42+ - python-version : " 3.8"
43+ qt-version : pyside6
44+ - python-version : " 3.8"
45+ qt-version : pyqt6
3246 fail-fast : false
3347 defaults :
3448 run :
@@ -52,15 +66,15 @@ jobs:
5266 curl -sSL https://install.python-poetry.org | POETRY_VERSION=1.8.4 python - -y
5367
5468 - name : Update Path
55- if : ${{ matrix.os != 'Windows ' }}
69+ if : ${{ matrix.os != 'windows ' }}
5670 run : echo "$HOME/.local/bin" >> $GITHUB_PATH
5771
5872 - name : Update Path for Windows
59- if : ${{ matrix.os == 'Windows ' }}
73+ if : ${{ matrix.os == 'windows ' }}
6074 run : echo "$APPDATA\Python\Scripts" >> $GITHUB_PATH
6175
6276 - name : Enable long paths on Windows
63- if : ${{ matrix.os == 'Windows ' }}
77+ if : ${{ matrix.os == 'windows ' }}
6478 run : git config --system core.longpaths true
6579
6680 - name : Configure poetry
7690 - name : Valdate cache
7791 if : steps.cache.outputs.cache-hit == 'true'
7892 run : |
79- # `timeout` is not available on macOS , so we define a custom function.
93+ # `timeout` is not available on macos , so we define a custom function.
8094 [ "$(command -v timeout)" ] || function timeout() { perl -e 'alarm shift; exec @ARGV' "$@"; }
8195
8296 # Using `timeout` is a safeguard against the Poetry command hanging for some reason.
@@ -92,10 +106,10 @@ jobs:
92106 # run: poetry run mypy
93107
94108 - name : Install Qt
95- run : poetry run pip install ${{ matrix.qt-version }}
109+ run : poetry run pip install --ignore-installed ${{ matrix.qt-version }}
96110
97111 - name : Install libxcb dependencies
98- if : ${{ matrix.os == 'Ubuntu ' }}
112+ if : ${{ matrix.os == 'ubuntu ' }}
99113 env :
100114 DEBIAN_FRONTEND : noninteractive
101115 run : |
0 commit comments