Skip to content

Commit 39d5af3

Browse files
Merge pull request Pylons#472 from Pylons/feature/update-ci-workflows
Update ci-workflow to run tests across more platforms
2 parents e57a91c + 32c18e5 commit 39d5af3

File tree

4 files changed

+56
-21
lines changed

4 files changed

+56
-21
lines changed

.github/workflows/ci-tests.yml

+52-17
Original file line numberDiff line numberDiff line change
@@ -16,39 +16,73 @@ jobs:
1616
strategy:
1717
matrix:
1818
py:
19-
- "3.8"
2019
- "3.9"
2120
- "3.10"
2221
- "3.11"
2322
- "3.12"
2423
- "3.13"
2524
- "pypy-3.9"
2625
- "pypy-3.10"
26+
# Pre-release
2727
os:
28-
- "ubuntu-latest"
28+
- "ubuntu-22.04"
2929
- "windows-latest"
30-
- "macos-latest"
30+
- "macos-14" # arm64
31+
- "macos-13" # x64
32+
architecture:
33+
- x64
34+
- x86
35+
- arm64
3136
include:
32-
- py: "pypy-3.9"
33-
toxenv: "pypy39"
34-
- py: "pypy-3.10"
35-
toxenv: "pypy310"
37+
- py: "pypy-3.9"
38+
toxenv: "pypy39"
39+
- py: "pypy-3.10"
40+
toxenv: "pypy310"
3641
exclude:
42+
# Ubuntu does not have x86/arm64 Python
43+
- os: "ubuntu-22.04"
44+
architecture: x86
45+
- os: "ubuntu-22.04"
46+
architecture: arm64
47+
# MacOS we need to make sure to remove x86 on all
48+
# We need to run no arm64 on macos-13 (Intel), but some
49+
# Python versions: 3.9/3.10
50+
#
51+
# From 3.11 onward, there is support for running x64 and
52+
# arm64 on Apple Silicon based systems (macos-14)
53+
- os: "macos-13"
54+
architecture: x86
55+
- os: "macos-13"
56+
architecture: arm64
57+
- os: "macos-14"
58+
architecture: x86
59+
- os: "macos-14"
60+
architecture: x64
61+
py: "3.9"
62+
- os: "macos-14"
63+
architecture: x64
64+
py: "3.10"
65+
# Windows does not have arm64 releases
66+
- os: "windows-latest"
67+
architecture: arm64
3768
# Don't run all PyPy versions except latest on
3869
# Windows/macOS. They are expensive to run.
3970
- os: "windows-latest"
4071
py: "pypy-3.9"
41-
- os: "macos-latest"
72+
- os: "macos-13"
73+
py: "pypy-3.9"
74+
- os: "macos-14"
4275
py: "pypy-3.9"
4376

44-
name: "Python: ${{ matrix.py }} on ${{ matrix.os }}"
77+
name: "Python: ${{ matrix.py }}-${{ matrix.architecture }} on ${{ matrix.os }}"
4578
runs-on: ${{ matrix.os }}
4679
steps:
4780
- uses: actions/checkout@v4
4881
- name: Setup python
4982
uses: actions/setup-python@v5
5083
with:
5184
python-version: ${{ matrix.py }}
85+
architecture: ${{ matrix.architecture }}
5286
- run: pip install tox
5387
- name: Running tox with specific toxenv
5488
if: ${{ matrix.toxenv != '' }}
@@ -58,40 +92,41 @@ jobs:
5892
- name: Running tox for current python version
5993
if: ${{ matrix.toxenv == '' }}
6094
run: tox -e py
95+
6196
coverage:
62-
runs-on: ubuntu-latest
97+
runs-on: ubuntu-22.04
6398
name: Validate coverage
6499
steps:
65100
- uses: actions/checkout@v4
66-
- name: Setup python 3.8
101+
- name: Setup python
67102
uses: actions/setup-python@v5
68103
with:
69-
python-version: 3.8
104+
python-version: "3.13"
70105
architecture: x64
71106

72107
- run: pip install tox
73-
- run: tox -e py38,coverage
108+
- run: tox -e py313,coverage
74109
docs:
75-
runs-on: ubuntu-latest
110+
runs-on: ubuntu-22.04
76111
name: Build the documentation
77112
steps:
78113
- uses: actions/checkout@v4
79114
- name: Setup python
80115
uses: actions/setup-python@v5
81116
with:
82-
python-version: 3.8
117+
python-version: "3.13"
83118
architecture: x64
84119
- run: pip install tox
85120
- run: tox -e docs
86121
lint:
87-
runs-on: ubuntu-latest
122+
runs-on: ubuntu-22.04
88123
name: Lint the package
89124
steps:
90125
- uses: actions/checkout@v4
91126
- name: Setup python
92127
uses: actions/setup-python@v5
93128
with:
94-
python-version: 3.8
129+
python-version: "3.13"
95130
architecture: x64
96131
- run: pip install tox
97132
- run: tox -e lint

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ requires = ["setuptools >= 41"]
33
build-backend = "setuptools.build_meta"
44

55
[tool.black]
6-
target-version = ['py38', 'py39', 'py310', 'py311', 'py312']
6+
target-version = ['py39', 'py310', 'py311', 'py312', 'py313']
77
exclude = '''
88
/(
99
\.git

setup.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@
3636
"Topic :: Internet :: WWW/HTTP :: WSGI",
3737
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
3838
"Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware",
39-
"Programming Language :: Python :: 3.8",
4039
"Programming Language :: Python :: 3.9",
4140
"Programming Language :: Python :: 3.10",
4241
"Programming Language :: Python :: 3.11",
4342
"Programming Language :: Python :: 3.12",
43+
"Programming Language :: Python :: 3.13",
4444
"Programming Language :: Python :: Implementation :: CPython",
4545
"Programming Language :: Python :: Implementation :: PyPy",
4646
],
@@ -52,7 +52,7 @@
5252
license="MIT",
5353
packages=find_packages("src", exclude=["tests"]),
5454
package_dir={"": "src"},
55-
python_requires=">=3.8",
55+
python_requires=">=3.9.0",
5656
install_requires=[
5757
"legacy-cgi>=2.6; python_version>='3.13'",
5858
],

tox.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[tox]
22
envlist =
33
lint,
4-
py38,py39,py310,py311,py312,py313,pypy39,pypy310,
4+
py39,py310,py311,py312,py313,pypy39,pypy310,
55
coverage,
66
docs,
77
isolated_build = True

0 commit comments

Comments
 (0)