Skip to content

Commit

Permalink
Merge pull request #472 from Pylons/feature/update-ci-workflows
Browse files Browse the repository at this point in the history
Update ci-workflow to run tests across more platforms
  • Loading branch information
digitalresistor authored Oct 26, 2024
2 parents e57a91c + 32c18e5 commit 39d5af3
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 21 deletions.
69 changes: 52 additions & 17 deletions .github/workflows/ci-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,39 +16,73 @@ jobs:
strategy:
matrix:
py:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "pypy-3.9"
- "pypy-3.10"
# Pre-release
os:
- "ubuntu-latest"
- "ubuntu-22.04"
- "windows-latest"
- "macos-latest"
- "macos-14" # arm64
- "macos-13" # x64
architecture:
- x64
- x86
- arm64
include:
- py: "pypy-3.9"
toxenv: "pypy39"
- py: "pypy-3.10"
toxenv: "pypy310"
- py: "pypy-3.9"
toxenv: "pypy39"
- py: "pypy-3.10"
toxenv: "pypy310"
exclude:
# Ubuntu does not have x86/arm64 Python
- os: "ubuntu-22.04"
architecture: x86
- os: "ubuntu-22.04"
architecture: arm64
# MacOS we need to make sure to remove x86 on all
# We need to run no arm64 on macos-13 (Intel), but some
# Python versions: 3.9/3.10
#
# From 3.11 onward, there is support for running x64 and
# arm64 on Apple Silicon based systems (macos-14)
- os: "macos-13"
architecture: x86
- os: "macos-13"
architecture: arm64
- os: "macos-14"
architecture: x86
- os: "macos-14"
architecture: x64
py: "3.9"
- os: "macos-14"
architecture: x64
py: "3.10"
# Windows does not have arm64 releases
- os: "windows-latest"
architecture: arm64
# Don't run all PyPy versions except latest on
# Windows/macOS. They are expensive to run.
- os: "windows-latest"
py: "pypy-3.9"
- os: "macos-latest"
- os: "macos-13"
py: "pypy-3.9"
- os: "macos-14"
py: "pypy-3.9"

name: "Python: ${{ matrix.py }} on ${{ matrix.os }}"
name: "Python: ${{ matrix.py }}-${{ matrix.architecture }} on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.py }}
architecture: ${{ matrix.architecture }}
- run: pip install tox
- name: Running tox with specific toxenv
if: ${{ matrix.toxenv != '' }}
Expand All @@ -58,40 +92,41 @@ jobs:
- name: Running tox for current python version
if: ${{ matrix.toxenv == '' }}
run: tox -e py

coverage:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
name: Validate coverage
steps:
- uses: actions/checkout@v4
- name: Setup python 3.8
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.13"
architecture: x64

- run: pip install tox
- run: tox -e py38,coverage
- run: tox -e py313,coverage
docs:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
name: Build the documentation
steps:
- uses: actions/checkout@v4
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.13"
architecture: x64
- run: pip install tox
- run: tox -e docs
lint:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
name: Lint the package
steps:
- uses: actions/checkout@v4
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.13"
architecture: x64
- run: pip install tox
- run: tox -e lint
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ requires = ["setuptools >= 41"]
build-backend = "setuptools.build_meta"

[tool.black]
target-version = ['py38', 'py39', 'py310', 'py311', 'py312']
target-version = ['py39', 'py310', 'py311', 'py312', 'py313']
exclude = '''
/(
\.git
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@
"Topic :: Internet :: WWW/HTTP :: WSGI",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
],
Expand All @@ -52,7 +52,7 @@
license="MIT",
packages=find_packages("src", exclude=["tests"]),
package_dir={"": "src"},
python_requires=">=3.8",
python_requires=">=3.9.0",
install_requires=[
"legacy-cgi>=2.6; python_version>='3.13'",
],
Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[tox]
envlist =
lint,
py38,py39,py310,py311,py312,py313,pypy39,pypy310,
py39,py310,py311,py312,py313,pypy39,pypy310,
coverage,
docs,
isolated_build = True
Expand Down

0 comments on commit 39d5af3

Please sign in to comment.