diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d79ea6bf5..7b4b4338f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,26 +60,23 @@ jobs: name: Unit tests needs: [ pre-commit, towncrier, package ] runs-on: ${{ matrix.platform }} - continue-on-error: ${{ matrix.experimental }} + continue-on-error: ${{ matrix.experimental || false }} strategy: fail-fast: false matrix: - platform: [ "macos-12", "macos-14", "windows-latest", "ubuntu-latest" ] - python-version: [ "3.9", "3.12", "3.13-dev" ] + platform: [ "macos-13", "macos-latest", "windows-latest", "ubuntu-latest" ] + python-version: [ "3.9", "3.13" ] include: - - experimental: false - - platform: "ubuntu-latest" - python-version: "3.9" - experimental: false + # Ensure the Python versions between min and max are tested - platform: "ubuntu-latest" python-version: "3.10" - experimental: false - platform: "ubuntu-latest" python-version: "3.11" - experimental: false - # Allow dev Python to fail without failing entire job - - python-version: "3.13-dev" - experimental: true + - platform: "ubuntu-latest" + python-version: "3.12" + # # Allow dev Python to fail without failing entire job + # - python-version: "3.14" + # experimental: true steps: - name: Checkout uses: actions/checkout@v4.2.1 @@ -90,6 +87,7 @@ jobs: uses: actions/setup-python@v5.2.0 with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Get Packages uses: actions/download-artifact@v4.1.8 @@ -185,23 +183,26 @@ jobs: fail-fast: false matrix: framework: [ "toga", "pyside6", "pygame", "console" ] - runner-os: [ "macos-12", "macos-14", "ubuntu-22.04", "windows-latest" ] + runner-os: [ "macos-13", "macos-latest", "ubuntu-latest", "windows-latest" ] verify-apps: name: Build app needs: [ package, package-automation, unit-tests ] uses: beeware/.github/.github/workflows/app-build-verify.yml@main with: - # This *must* be the version of Python that is the system Python on the - # Ubuntu version used to run Linux tests. We use a fixed ubuntu-22.04 - # rather than `-latest` because at some point, `-latest` will become - # `-24.04`, but it will be a soft changeover, which will cause havoc with - # the hard Python version requirement for local system packages. - python-version: "3.10" + python-version: ${{ matrix.python-version }} runner-os: ${{ matrix.runner-os }} framework: ${{ matrix.framework }} strategy: fail-fast: false matrix: framework: [ "toga", "pyside6", "pygame", "console" ] - runner-os: [ "macos-12", "macos-14", "ubuntu-22.04", "windows-latest" ] + runner-os: [ "macos-13", "macos-latest", "ubuntu-latest", "windows-latest" ] + + include: + # A version of Python that is supported by all the GUI toolkits. + - python-version: "3.12" + + # Ubuntu must always use the system Python + - runner-os: ubuntu-latest + python-version: system diff --git a/changes/2032.misc.rst b/changes/2032.misc.rst new file mode 100644 index 000000000..46a936b4d --- /dev/null +++ b/changes/2032.misc.rst @@ -0,0 +1 @@ +CI configurations were updated to reflect the stable status of 3.13, and the "system" option for app-build-verify.