|
42 | 42 | contents:read
|
43 | 43 | name:"Python ${{ matrix.python-version }} on ${{ matrix.os }} ${{ matrix.name-suffix }}"
|
44 | 44 | runs-on:${{ matrix.os }}
|
| 45 | +continue-on-error:${{ contains(matrix.name-suffix, 'pre-release') }} |
45 | 46 |
|
46 | 47 | strategy:
|
47 | 48 | fail-fast:false
|
|
88 | 89 | python-version:'3.13'
|
89 | 90 | # https://github.com/matplotlib/matplotlib/issues/29732
|
90 | 91 | pygobject-ver:'<3.52.0'
|
| 92 | + -name-suffix:"(Python pre-release)" |
| 93 | +os:ubuntu-24.04 |
| 94 | +python-version:'3.14-dev' |
91 | 95 |
|
92 | 96 | steps:
|
93 | 97 | -uses:actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683# v4.2.2
|
@@ -226,6 +230,12 @@ jobs:
|
226 | 230 | PRE="--pre"
|
227 | 231 | fi
|
228 | 232 |
|
| 233 | + # On pre-release builds, use nightly wheels |
| 234 | + if ${{ contains(matrix.name-suffix, 'pre-release') }}; then |
| 235 | + PRE="--pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" |
| 236 | + PRE+=" --prefer-binary" |
| 237 | + fi |
| 238 | +
|
229 | 239 | # Install dependencies from PyPI.
|
230 | 240 | # Preinstall build requirements to enable no-build-isolation builds.
|
231 | 241 | python -m pip install --upgrade $PRE \
|
@@ -265,8 +275,10 @@ jobs:
|
265 | 275 | # Even though PySide2 wheels can be installed on Python 3.12+, they are broken and since PySide2 is
|
266 | 276 | # deprecated, they are unlikely to be fixed. For the same deprecation reason, there are no wheels
|
267 | 277 | # on M1 macOS, so don't bother there either.
|
268 |
| - if [[ "${{ matrix.os }}" != 'macos-14' |
269 |
| - && "${{ matrix.python-version }}" != '3.12' && "${{ matrix.python-version }}" != '3.13' ]]; then |
| 278 | + version_atmost() { |
| 279 | + printf "%s\n" "$1" "$2" | sort --version-sort --check=silent |
| 280 | + } |
| 281 | + if [[ "${{ matrix.os }}" != 'macos-14' ]] && version_atmost "${{ matrix.python-version }}" 3.11.999; then |
270 | 282 | python -mpip install --upgrade pyside2 &&
|
271 | 283 | python -c 'import PySide2.QtCore' &&
|
272 | 284 | echo 'PySide2 is available' ||
|
@@ -333,6 +345,7 @@ jobs:
|
333 | 345 | if:matrix.delete-font-cache
|
334 | 346 |
|
335 | 347 | -name:Run pytest
|
| 348 | +timeout-minutes:90 |
336 | 349 | run:|
|
337 | 350 | if [[ "${{ matrix.python-version }}" == '3.13t' ]]; then
|
338 | 351 | export PYTHON_GIL=0
|
|