@@ -24,14 +24,22 @@ concurrency:
24
24
cancel-in-progress : true
25
25
26
26
jobs :
27
- tests-linux :
28
- name : run / ${{ matrix.python-version }} / Linux
29
- runs-on : ubuntu-latest
27
+ tests :
28
+ name : run / ${{ matrix.python-version }} / ${{ matrix.os }}
30
29
timeout-minutes : 25
31
30
strategy :
32
31
fail-fast : false
33
32
matrix :
33
+ os : [ubuntu-latest]
34
34
python-version : ["3.9", "3.10", "3.11", "3.12", "3.13"]
35
+ include :
36
+ - os : macos-latest
37
+ python-version : " 3.9"
38
+ - os : ubuntu-latest
39
+ python-version : " pypy-3.9"
40
+ - os : ubuntu-latest
41
+ python-version : " pypy-3.10"
42
+ runs-on : ${{ matrix.os }}
35
43
outputs :
36
44
python-key : ${{ steps.generate-python-key.outputs.key }}
37
45
steps :
76
84
pip list | grep 'astroid\|pylint'
77
85
python -m pytest -vv --minimal-messages-config tests/test_functional.py
78
86
- name : Upload coverage artifact
87
+ if : runner.os == 'Linux'
79
88
80
89
with :
81
90
name : coverage-${{ matrix.python-version }}
@@ -86,11 +95,11 @@ jobs:
86
95
name : process / coverage
87
96
runs-on : ubuntu-latest
88
97
timeout-minutes : 5
89
- needs : tests-linux
98
+ needs : tests
90
99
steps :
91
100
- name : Check out code from GitHub
92
101
93
- - name : Set up Python 3.12
102
+ - name : Set up Python 3.13
94
103
id : python
95
104
96
105
with :
@@ -122,7 +131,7 @@ jobs:
122
131
name : run benchmark / ${{ matrix.python-version }} / Linux
123
132
runs-on : ubuntu-latest
124
133
timeout-minutes : 10
125
- needs : tests-linux
134
+ needs : tests
126
135
strategy :
127
136
fail-fast : false
128
137
matrix :
@@ -173,7 +182,7 @@ jobs:
173
182
name : run / ${{ matrix.python-version }} / Windows
174
183
runs-on : windows-latest
175
184
timeout-minutes : 25
176
- needs : tests-linux
185
+ needs : tests
177
186
strategy :
178
187
fail-fast : false
179
188
matrix :
@@ -217,93 +226,3 @@ jobs:
217
226
. venv\\Scripts\\activate
218
227
pip list | grep 'astroid\|pylint'
219
228
python -m pytest --durations=10 --benchmark-disable tests/
220
-
221
- tests-macos :
222
- name : run / ${{ matrix.python-version }} / macOS
223
- runs-on : macos-latest
224
- timeout-minutes : 25
225
- needs : tests-linux
226
- strategy :
227
- fail-fast : false
228
- matrix :
229
- # We only run on the oldest supported version on Mac
230
- python-version : ["3.9"]
231
- steps :
232
- - name : Check out code from GitHub
233
-
234
- - name : Set up Python ${{ matrix.python-version }}
235
- id : python
236
-
237
- with :
238
- python-version : ${{ matrix.python-version }}
239
- check-latest : true
240
- - name : Generate partial Python venv restore key
241
- id : generate-python-key
242
- run : >-
243
- echo "key=venv-${{ env.CACHE_VERSION }}-${{
244
- hashFiles('pyproject.toml', 'requirements_test_min.txt')
245
- }}" >> $GITHUB_OUTPUT
246
- - name : Restore Python virtual environment
247
- id : cache-venv
248
-
249
- with :
250
- path : venv
251
- key : >-
252
- ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
253
- steps.generate-python-key.outputs.key }}
254
- - name : Create Python virtual environment
255
- if : steps.cache-venv.outputs.cache-hit != 'true'
256
- run : |
257
- python -m venv venv
258
- . venv/bin/activate
259
- python -m pip install --upgrade pip setuptools wheel
260
- pip install --upgrade --requirement requirements_test_min.txt
261
- - name : Run pytest
262
- run : |
263
- . venv/bin/activate
264
- pip list | grep 'astroid\|pylint'
265
- python -m pytest --durations=10 --benchmark-disable tests/
266
-
267
- tests-pypy :
268
- name : run / ${{ matrix.python-version }} / Linux
269
- runs-on : ubuntu-latest
270
- timeout-minutes : 25
271
- strategy :
272
- fail-fast : false
273
- matrix :
274
- python-version : ["pypy-3.9", "pypy-3.10"]
275
- steps :
276
- - name : Check out code from GitHub
277
-
278
- - name : Set up Python ${{ matrix.python-version }}
279
- id : python
280
-
281
- with :
282
- python-version : ${{ matrix.python-version }}
283
- check-latest : true
284
- - name : Generate partial Python venv restore key
285
- id : generate-python-key
286
- run : >-
287
- echo "key=venv-${{ env.CACHE_VERSION }}-${{
288
- hashFiles('pyproject.toml', 'requirements_test_min.txt')
289
- }}" >> $GITHUB_OUTPUT
290
- - name : Restore Python virtual environment
291
- id : cache-venv
292
-
293
- with :
294
- path : venv
295
- key : >-
296
- ${{ runner.os }}-${{ matrix.python-version }}-${{
297
- steps.generate-python-key.outputs.key }}
298
- - name : Create Python virtual environment
299
- if : steps.cache-venv.outputs.cache-hit != 'true'
300
- run : |
301
- python -m venv venv
302
- . venv/bin/activate
303
- python -m pip install --upgrade pip setuptools wheel
304
- pip install --upgrade --requirement requirements_test_min.txt
305
- - name : Run pytest
306
- run : |
307
- . venv/bin/activate
308
- pip list | grep 'astroid\|pylint'
309
- python -m pytest --durations=10 --benchmark-disable tests/
0 commit comments