@@ -16,39 +16,73 @@ jobs:
16
16
strategy :
17
17
matrix :
18
18
py :
19
- - " 3.8"
20
19
- " 3.9"
21
20
- " 3.10"
22
21
- " 3.11"
23
22
- " 3.12"
24
23
- " 3.13"
25
24
- " pypy-3.9"
26
25
- " pypy-3.10"
26
+ # Pre-release
27
27
os :
28
- - " ubuntu-latest "
28
+ - " ubuntu-22.04 "
29
29
- " windows-latest"
30
- - " macos-latest"
30
+ - " macos-14" # arm64
31
+ - " macos-13" # x64
32
+ architecture :
33
+ - x64
34
+ - x86
35
+ - arm64
31
36
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"
36
41
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
37
68
# Don't run all PyPy versions except latest on
38
69
# Windows/macOS. They are expensive to run.
39
70
- os : " windows-latest"
40
71
py : " pypy-3.9"
41
- - os : " macos-latest"
72
+ - os : " macos-13"
73
+ py : " pypy-3.9"
74
+ - os : " macos-14"
42
75
py : " pypy-3.9"
43
76
44
- name : " Python: ${{ matrix.py }} on ${{ matrix.os }}"
77
+ name : " Python: ${{ matrix.py }}-${{ matrix.architecture }} on ${{ matrix.os }}"
45
78
runs-on : ${{ matrix.os }}
46
79
steps :
47
80
- uses : actions/checkout@v4
48
81
- name : Setup python
49
82
uses : actions/setup-python@v5
50
83
with :
51
84
python-version : ${{ matrix.py }}
85
+ architecture : ${{ matrix.architecture }}
52
86
- run : pip install tox
53
87
- name : Running tox with specific toxenv
54
88
if : ${{ matrix.toxenv != '' }}
@@ -58,40 +92,41 @@ jobs:
58
92
- name : Running tox for current python version
59
93
if : ${{ matrix.toxenv == '' }}
60
94
run : tox -e py
95
+
61
96
coverage :
62
- runs-on : ubuntu-latest
97
+ runs-on : ubuntu-22.04
63
98
name : Validate coverage
64
99
steps :
65
100
- uses : actions/checkout@v4
66
- - name : Setup python 3.8
101
+ - name : Setup python
67
102
uses : actions/setup-python@v5
68
103
with :
69
- python-version : 3.8
104
+ python-version : " 3.13 "
70
105
architecture : x64
71
106
72
107
- run : pip install tox
73
- - run : tox -e py38 ,coverage
108
+ - run : tox -e py313 ,coverage
74
109
docs :
75
- runs-on : ubuntu-latest
110
+ runs-on : ubuntu-22.04
76
111
name : Build the documentation
77
112
steps :
78
113
- uses : actions/checkout@v4
79
114
- name : Setup python
80
115
uses : actions/setup-python@v5
81
116
with :
82
- python-version : 3.8
117
+ python-version : " 3.13 "
83
118
architecture : x64
84
119
- run : pip install tox
85
120
- run : tox -e docs
86
121
lint :
87
- runs-on : ubuntu-latest
122
+ runs-on : ubuntu-22.04
88
123
name : Lint the package
89
124
steps :
90
125
- uses : actions/checkout@v4
91
126
- name : Setup python
92
127
uses : actions/setup-python@v5
93
128
with :
94
- python-version : 3.8
129
+ python-version : " 3.13 "
95
130
architecture : x64
96
131
- run : pip install tox
97
132
- run : tox -e lint
0 commit comments