Merge pull request #3211 from pajod/patch-macos14-no-eol-python

CI: revert macos-14 runners, migrate to tox v4-exclusive settings, add Python 3.13
This commit is contained in:
Benoit Chesneau 2024-07-04 15:11:57 +02:00 committed by GitHub
commit 405c3ca35e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 31 additions and 4 deletions

View File

@ -14,7 +14,12 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest] # All OSes pass except Windows because tests need Unix-only fcntl, grp, pwd, etc.
unsupported: [false]
os:
- ubuntu-latest
# not defaulting to macos-latest: Python <= 3.9 was missing from macos-14 @ arm64
- macos-13
# Not testing Windows, because tests need Unix-only fcntl, grp, pwd, etc.
python-version:
# CPython <= 3.7 is EoL since 2023-06-27
- "3.7"
@ -26,6 +31,19 @@ jobs:
# PyPy <= 3.8 is EoL since 2023-06-16
- "pypy-3.9"
- "pypy-3.10"
include:
# Note: potentially "universal2" release
# https://github.com/actions/runner-images/issues/9741
- os: macos-latest
python-version: "3.12"
unsupported: false
# will run these without showing red CI results should they fail
- os: macos-latest
python-version: "3.13"
unsupported: true
- os: ubuntu-latest
python-version: "3.13"
unsupported: true
steps:
- uses: actions/checkout@v4
- name: Using Python ${{ matrix.python-version }}
@ -35,10 +53,14 @@ jobs:
cache: pip
cache-dependency-path: requirements_test.txt
check-latest: true
allow-prereleases: ${{ matrix.unsupported }}
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
python -m pip install tox
- run: tox -e run-module
continue-on-error: ${{ matrix.unsupported }}
- run: tox -e run-entrypoint
continue-on-error: ${{ matrix.unsupported }}
- run: tox -e py
continue-on-error: ${{ matrix.unsupported }}

11
tox.ini
View File

@ -6,24 +6,27 @@ envlist =
pycodestyle,
run-entrypoint,
run-module,
skipsdist = false
; Can't set skipsdist and use_develop in tox v4 to true due to https://github.com/tox-dev/tox/issues/2730
[testenv]
use_develop = true
package = editable
commands = pytest --cov=gunicorn {posargs}
deps =
-rrequirements_test.txt
[testenv:run-entrypoint]
package = wheel
deps =
# entry point: console script (provided by setuptools from pyproject.toml)
commands = python -c 'import subprocess; cmd_out = subprocess.check_output(["gunicorn", "--version"])[:79].decode("utf-8", errors="replace"); print(cmd_out); assert cmd_out.startswith("gunicorn ")'
[testenv:run-module]
package = wheel
deps =
# runpy (provided by module.__main__)
commands = python -c 'import sys,subprocess; cmd_out = subprocess.check_output([sys.executable, "-m", "gunicorn", "--version"])[:79].decode("utf-8", errors="replace"); print(cmd_out); assert cmd_out.startswith("gunicorn ")'
[testenv:lint]
no_package = true
commands =
pylint -j0 \
--max-line-length=120 \
@ -44,6 +47,7 @@ deps =
pylint==2.17.4
[testenv:docs-lint]
no_package = true
allowlist_externals =
rst-lint
bash
@ -56,6 +60,7 @@ commands =
bash -c "(set -o pipefail; rst-lint --encoding utf-8 docs/source/*.rst | grep -v 'Unknown interpreted text role\|Unknown directive type'); test $? == 1"
[testenv:pycodestyle]
no_package = true
commands =
pycodestyle gunicorn
deps =