99jobs :
1010 build :
1111 name : Test & Build
12+ container :
13+ # Run some matrix cases in a container. If `container-image` is blank, the
14+ # job will run conventionally on the agent.
15+ image : ${{ matrix.container-image }}
16+ env :
17+ PYTHON : ${{ matrix.python-version }}
18+ runs-on : [ubuntu-20.04]
1219 strategy :
20+ # Finish the other builds even if one fails.
21+ fail-fast : false
1322 matrix :
1423 python-version : ['2.7', '3.7', '3.8', '3.10']
15- runs-on : [ubuntu-20.04]
16- env :
17- PYTHON : ${{ matrix.python-version }}
24+ include :
25+ - python-version : ' 2.7 '
26+ container-image : python:2.7
1827 steps :
1928 - uses : actions/checkout@v3
2029 with :
2130 fetch-depth : 0 # fetch all history for setuptools_scm to be able to read tags
2231
2332 - uses : actions/setup-python@v4
33+ # Only set up Python if we're running directly on an agent. If we're in
34+ # a container, the image should already provide the intended Python.
35+ if : ' ! matrix.container-image'
2436 with :
2537 python-version : ${{ matrix.python-version }}
2638
@@ -45,10 +57,11 @@ jobs:
4557 if : matrix.python-version == '3.8'
4658 with :
4759 env_vars : PYTHON
48- fail_ci_if_error : true
60+ # TODO: re-enable errors when rate limit is resolved?
61+ # fail_ci_if_error: true
4962 files : .coverage.${{ steps.pyenv.outputs.value }}.xml
5063
51- - uses : actions/upload-artifact@v3
64+ - uses : actions/upload-artifact@v4
5265 if : matrix.python-version == '2.7' || matrix.python-version == '3.8'
5366 with :
5467 name : dist-${{ matrix.python-version }}
6275 id-token : write
6376 if : github.event_name != 'pull_request'
6477 steps :
65- - uses : actions/download-artifact@v3
78+ - uses : actions/download-artifact@v4
6679
6780 - name : Organize files for upload
6881 run : |
0 commit comments