1919 strategy :
2020 matrix :
2121 python-version : ['3.12']
22- os : ['ubuntu-20 .04']
22+ os : ['ubuntu-24 .04']
2323 name : Lint Python
2424 steps :
2525 - name : Set up Python ${{ matrix.python-version }}
3737 run : ruff format --check ${{ runner.workspace }}/pedalboard --exclude .git,dist,doc,build,JUCE,examples,vendors,'*.pyi' --diff --line-length 100
3838
3939 lint-cpp :
40- runs-on : ' ubuntu-20 .04'
40+ runs-on : ' ubuntu-24 .04'
4141 continue-on-error : true
4242 name : Lint C++
4343 steps :
5757 strategy :
5858 matrix :
5959 include :
60- - { os: ubuntu-20 .04, python-version: "3.12", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
60+ - { os: ubuntu-24 .04, python-version: "3.12", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
6161 name : Pre-build on ${{ matrix.os }} with ${{ matrix.compiler }}
6262 steps :
6363 - name : Set up Python ${{ matrix.python-version }}
@@ -241,7 +241,7 @@ jobs:
241241 strategy :
242242 matrix :
243243 include :
244- - { os: ubuntu-20 .04, python-version: "3.12", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
244+ - { os: ubuntu-24 .04, python-version: "3.12", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
245245 name : Pre-build on ${{ matrix.os }} with ${{ matrix.compiler }}
246246 steps :
247247 - name : Set up Python ${{ matrix.python-version }}
@@ -342,7 +342,7 @@ jobs:
342342 - prime-ubuntu-build-caches
343343 strategy :
344344 matrix :
345- os : ["ubuntu-20 .04"]
345+ os : ["ubuntu-24 .04"]
346346 python-version : ["3.12"]
347347 compiler : ["gcc"]
348348 cc : ["ccache gcc"]
@@ -462,12 +462,12 @@ jobs:
462462 - { os: macos-13, python-version: "3.11", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
463463 - { os: macos-13, python-version: "3.12", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
464464 - { os: macos-13, python-version: "3.13.0-rc.1", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
465- - { os: ubuntu-20 .04, python-version: "3.8", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
466- - { os: ubuntu-20 .04, python-version: "3.9", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
467- - { os: ubuntu-20 .04, python-version: "3.10", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
468- - { os: ubuntu-20 .04, python-version: "3.11", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
469- - { os: ubuntu-20 .04, python-version: "3.12", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
470- - { os: ubuntu-20 .04, python-version: "3.13.0-rc.1", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
465+ - { os: ubuntu-24 .04, python-version: "3.8", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
466+ - { os: ubuntu-24 .04, python-version: "3.9", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
467+ - { os: ubuntu-24 .04, python-version: "3.10", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
468+ - { os: ubuntu-24 .04, python-version: "3.11", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
469+ - { os: ubuntu-24 .04, python-version: "3.12", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
470+ - { os: ubuntu-24 .04, python-version: "3.13.0-rc.1", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
471471 # - { os: windows-latest, python-version: "3.8", compiler: "msvc", cc: "msvc", cxx: "msvc" }
472472 # - { os: windows-latest, python-version: "3.9", compiler: "msvc", cc: "msvc", cxx: "msvc" }
473473 # - { os: windows-latest, python-version: "3.10", compiler: "msvc", cc: "msvc", cxx: "msvc" }
@@ -579,18 +579,18 @@ jobs:
579579 GCS_READER_SERVICE_ACCOUNT_KEY : ${{ secrets.GCS_READER_SERVICE_ACCOUNT_KEY }}
580580 run : python ./tests/download_test_plugins.py
581581 - name : Run tests
582- if : matrix.os != 'ubuntu-20 .04' || matrix.python-version != '3.8'
582+ if : matrix.os != 'ubuntu-24 .04' || matrix.python-version != '3.8'
583583 run : pytest --maxfail=4 --cov-report term --cov-fail-under=${{ env.MINIMUM_COVERAGE_PERCENTAGE }} --cov=pedalboard --durations=100
584584 - name : Run tests with coverage reporting
585- if : matrix.os == 'ubuntu-20 .04' && matrix.python-version == '3.8'
585+ if : matrix.os == 'ubuntu-24 .04' && matrix.python-version == '3.8'
586586 run : |
587587 pytest --maxfail=4 --cov-report term --cov-fail-under=${{ env.MINIMUM_COVERAGE_PERCENTAGE }} --cov=pedalboard \
588588 && coverage json --fail-under=${{ env.MINIMUM_COVERAGE_PERCENTAGE }} \
589589 && jq -r 'def roundit: .*100.0 + 0.5|floor/100.0; .totals.percent_covered | round | "COVERAGE_PERCENTAGE=" + (. | tostring) + "%" ' coverage.json >> $GITHUB_ENV \
590590 && jq -r 'if .totals.percent_covered > ${{ env.MINIMUM_COVERAGE_PERCENTAGE }} then "COVERAGE_COLOR=green" else "COVERAGE_COLOR=red" end' coverage.json >> $GITHUB_ENV
591591 - name : Create coverage badge
592592 uses : schneegans/dynamic-badges-action@v1.1.0
593- if : matrix.os == 'ubuntu-20 .04' && matrix.python-version == '3.8' && github.event_name == 'release' && github.event.action == 'published'
593+ if : matrix.os == 'ubuntu-24 .04' && matrix.python-version == '3.8' && github.event_name == 'release' && github.event.action == 'published'
594594 with :
595595 auth : ${{ secrets.COVERAGE_GIST_SECRET }}
596596 gistID : 8736467e9952991ef44a67915ee7c762
@@ -605,7 +605,7 @@ jobs:
605605 strategy :
606606 matrix :
607607 python-version : ['3.8', '3.9', '3.10', '3.11', '3.12']
608- os : ['ubuntu-20 .04']
608+ os : ['ubuntu-24 .04']
609609 name : Test with Python ${{ matrix.python-version }} + Address Sanitizer
610610 steps :
611611 - name : Set up Python ${{ matrix.python-version }}
@@ -714,30 +714,30 @@ jobs:
714714 - { os: windows-latest, build: cp313-win_amd64 }
715715 # - { os: windows-latest, build: cp313t-win_amd64 }
716716 - { os: windows-latest, build: cp312-win32 }
717- - { os: 'ubuntu-20 .04', build: cp39-manylinux_x86_64 }
718- - { os: 'ubuntu-20 .04', build: cp39-manylinux_aarch64 }
719- # - { os: 'ubuntu-20 .04', build: cp39-musllinux_x86_64 }
720- # - { os: 'ubuntu-20 .04', build: cp39-musllinux_aarch64 }
721- - { os: 'ubuntu-20 .04', build: cp310-manylinux_x86_64 }
722- - { os: 'ubuntu-20 .04', build: cp310-manylinux_aarch64 }
723- - { os: 'ubuntu-20 .04', build: cp310-musllinux_x86_64 }
724- - { os: 'ubuntu-20 .04', build: cp310-musllinux_aarch64 }
725- - { os: 'ubuntu-20 .04', build: cp311-manylinux_x86_64 }
726- - { os: 'ubuntu-20 .04', build: cp311-manylinux_aarch64 }
727- # - { os: 'ubuntu-20 .04', build: cp311-musllinux_x86_64 }
728- # - { os: 'ubuntu-20 .04', build: cp311-musllinux_aarch64 }
729- - { os: 'ubuntu-20 .04', build: cp312-manylinux_x86_64 }
730- - { os: 'ubuntu-20 .04', build: cp312-manylinux_aarch64 }
731- - { os: 'ubuntu-20 .04', build: cp312-musllinux_x86_64 }
732- - { os: 'ubuntu-20 .04', build: cp312-musllinux_aarch64 }
733- - { os: 'ubuntu-20 .04', build: cp313-manylinux_x86_64 }
734- - { os: 'ubuntu-20 .04', build: cp313-manylinux_aarch64 }
735- # - { os: 'ubuntu-20 .04', build: cp313-musllinux_x86_64 }
736- # - { os: 'ubuntu-20 .04', build: cp313-musllinux_aarch64 }
737- - { os: 'ubuntu-20 .04', build: cp313t-manylinux_x86_64 }
738- - { os: 'ubuntu-20 .04', build: cp313t-manylinux_aarch64 }
739- # - { os: 'ubuntu-20 .04', build: cp313t-musllinux_x86_64 }
740- # - { os: 'ubuntu-20 .04', build: cp313t-musllinux_aarch64 }
717+ - { os: 'ubuntu-24 .04', build: cp39-manylinux_x86_64 }
718+ - { os: 'ubuntu-24 .04', build: cp39-manylinux_aarch64 }
719+ # - { os: 'ubuntu-24 .04', build: cp39-musllinux_x86_64 }
720+ # - { os: 'ubuntu-24 .04', build: cp39-musllinux_aarch64 }
721+ - { os: 'ubuntu-24 .04', build: cp310-manylinux_x86_64 }
722+ - { os: 'ubuntu-24 .04', build: cp310-manylinux_aarch64 }
723+ - { os: 'ubuntu-24 .04', build: cp310-musllinux_x86_64 }
724+ - { os: 'ubuntu-24 .04', build: cp310-musllinux_aarch64 }
725+ - { os: 'ubuntu-24 .04', build: cp311-manylinux_x86_64 }
726+ - { os: 'ubuntu-24 .04', build: cp311-manylinux_aarch64 }
727+ # - { os: 'ubuntu-24 .04', build: cp311-musllinux_x86_64 }
728+ # - { os: 'ubuntu-24 .04', build: cp311-musllinux_aarch64 }
729+ - { os: 'ubuntu-24 .04', build: cp312-manylinux_x86_64 }
730+ - { os: 'ubuntu-24 .04', build: cp312-manylinux_aarch64 }
731+ - { os: 'ubuntu-24 .04', build: cp312-musllinux_x86_64 }
732+ - { os: 'ubuntu-24 .04', build: cp312-musllinux_aarch64 }
733+ - { os: 'ubuntu-24 .04', build: cp313-manylinux_x86_64 }
734+ - { os: 'ubuntu-24 .04', build: cp313-manylinux_aarch64 }
735+ # - { os: 'ubuntu-24 .04', build: cp313-musllinux_x86_64 }
736+ # - { os: 'ubuntu-24 .04', build: cp313-musllinux_aarch64 }
737+ - { os: 'ubuntu-24 .04', build: cp313t-manylinux_x86_64 }
738+ - { os: 'ubuntu-24 .04', build: cp313t-manylinux_aarch64 }
739+ # - { os: 'ubuntu-24 .04', build: cp313t-musllinux_x86_64 }
740+ # - { os: 'ubuntu-24 .04', build: cp313t-musllinux_aarch64 }
741741 name : Build wheel for ${{ matrix.build }}
742742 steps :
743743 - uses : actions/checkout@v4
@@ -794,7 +794,7 @@ jobs:
794794
795795 upload-pypi :
796796 needs : [merge, run-tests-with-address-sanitizer, run-tests]
797- runs-on : ' ubuntu-20 .04'
797+ runs-on : ' ubuntu-24 .04'
798798 name : " Upload wheels to PyPI"
799799 if : github.event_name == 'release' && github.event.action == 'published'
800800 steps :
0 commit comments