@@ -365,9 +365,14 @@ jobs:
365
365
# NOTE: When adding new Linux versions, you may need
366
366
# to compile new wxPython .wgn files
367
367
- ubuntu-22.04
368
- # Test the earliest supported Python version only
368
+ # Test earliest to latest Python versions supported by Crystal,
369
+ # on at least one OS.
369
370
python-version :
371
+ # NOTE: When adding new Python versions, you may need
372
+ # to compile new wxPython .wgn files
370
373
- " 3.11.9"
374
+ - " 3.12.9"
375
+ - " 3.13.5"
371
376
fail-fast : false
372
377
runs-on : ${{ matrix.os }}
373
378
timeout-minutes : 9 # 150% of normal time: 5 min, as of 2025-07-21
@@ -405,6 +410,11 @@ jobs:
405
410
- name : Install wxPython dependencies
406
411
run : sudo apt-get install -y libgtk-3-dev
407
412
413
+ # Install additional dependencies for Python 3.13 wxPython
414
+ - name : Install wxPython dependencies for Python 3.13
415
+ if : startsWith(matrix.python-version, '3.13.')
416
+ run : sudo apt-get install -y libnotify4
417
+
408
418
# Install wxPython from precompiled wagon because installing
409
419
# wxPython from source takes about 40 minutes on GitHub Actions
410
420
#
@@ -416,8 +426,22 @@ jobs:
416
426
wget --no-verbose https://github.com/davidfstr/Crystal-Web-Archiver/releases/download/v1.4.0b/wxPython-4.2.3-py311-none-linux_x86_64.wgn
417
427
poetry run wagon install wxPython-4.2.3-py311-none-linux_x86_64.wgn
418
428
429
+ - name : Install dependency wxPython from wagon (Python 3.12)
430
+ if : startsWith(matrix.python-version, '3.12.')
431
+ run : |
432
+ poetry run pip3 install wagon
433
+ wget --no-verbose https://github.com/davidfstr/Crystal-Web-Archiver/releases/download/v1.4.0b/wxPython-4.2.3-py312-none-linux_x86_64.wgn
434
+ poetry run wagon install wxPython-4.2.3-py312-none-linux_x86_64.wgn
435
+
436
+ - name : Install dependency wxPython from wagon (Python 3.13)
437
+ if : startsWith(matrix.python-version, '3.13.')
438
+ run : |
439
+ poetry run pip3 install wagon
440
+ wget --no-verbose https://github.com/davidfstr/Crystal-Web-Archiver/releases/download/v1.4.0b/wxPython-4.2.3-py313-none-linux_x86_64.wgn
441
+ poetry run wagon install wxPython-4.2.3-py313-none-linux_x86_64.wgn
442
+
419
443
- name : Fail if wxPython wagon is not available for this Python version
420
- if : ${{ !startsWith(matrix.python-version, '3.11.') }}
444
+ if : ${{ !startsWith(matrix.python-version, '3.11.') && !startsWith(matrix.python-version, '3.12.') && !startsWith(matrix.python-version, '3.13.') }}
421
445
run : |
422
446
echo "ERROR: No precompiled wxPython wagon is available for Python ${{ matrix.python-version }} on Linux."
423
447
echo "You must build a .wgn for this Python version and update the workflow."
@@ -466,16 +490,7 @@ jobs:
466
490
# NOTE: Earliest Windows supported by Crystal is Windows 11 (from the README)
467
491
- windows-2025 # based on Windows 11 version 24H2 (Germanium)
468
492
python-version :
469
- # Test earliest to latest Python versions supported by Crystal,
470
- # on at least one OS.
471
- #
472
- # NOTE: Testing all Python versions on Linux would be faster
473
- # than on Windows because Linux runners are faster than
474
- # every other OS. However Windows is the second fastest OS,
475
- # and doesn't require precompiled wxPython .wgn files.
476
493
- " 3.11.9"
477
- - " 3.12.9"
478
- - " 3.13.5"
479
494
fail-fast : false
480
495
runs-on : ${{ matrix.os }}
481
496
timeout-minutes : 43 # 150% of normal time: 29 min, as of 2025-07-21
0 commit comments