11name : CI
22
3+ permissions : {}
4+
35on :
46 push :
57 branches-ignore :
@@ -11,56 +13,56 @@ concurrency:
1113 cancel-in-progress : true
1214
1315jobs :
14- # # Windows:
15- # # name: 'Windows (${{ matrix.python }}, ${{ matrix.arch }}${{ matrix.extra_name }})'
16- # # timeout-minutes: 20
17- # # runs-on: 'windows-latest'
18- # # strategy:
19- # # fail-fast: false
20- # # matrix:
21- # # python: ['3.10', '3.11', '3.12']
22- # # arch: ['x86', 'x64']
23- # # continue-on-error: >-
24- # # ${{
25- # # (
26- # # endsWith(matrix.python, '-dev')
27- # # || endsWith(matrix.python, '-nightly')
28- # # )
29- # # && true
30- # # || false
31- # # }}
32- # # steps:
33- # # - name: Checkout
34- # # uses: actions/checkout@v4
35- # # - name: Setup python
36- # # uses: actions/setup-python@v5
37- # # with:
38- # # # This allows the matrix to specify just the major.minor version while still
39- # # # expanding it to get the latest patch version including alpha releases.
40- # # # This avoids the need to update for each new alpha, beta, release candidate,
41- # # # and then finally an actual release version. actions/setup-python doesn't
42- # # # support this for PyPy presently so we get no help there.
43- # # #
44- # # # 'CPython' -> '3.9.0-alpha - 3.9.X'
45- # # # 'PyPy' -> 'pypy-3.9'
46- # # python-version: ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python), matrix.python))[startsWith(matrix.python, 'pypy')] }}
47- # # architecture: '${{ matrix.arch }}'
48- # # cache: pip
49- # # cache-dependency-path: test-requirements.txt
50- # # - name: Run tests
51- # # run: ./ci.sh
52- # # shell: bash
16+ Windows :
17+ name : ' Windows (${{ matrix.python }}, ${{ matrix.arch }}${{ matrix.extra_name }})'
18+ timeout-minutes : 20
19+ runs-on : ' windows-latest'
20+ strategy :
21+ fail-fast : false
22+ matrix :
23+ python : ['3.9', '3.10', '3.11', '3.12', '3.13']
24+ arch : ['x86', 'x64']
25+ continue-on-error : >-
26+ ${{
27+ (
28+ endsWith(matrix.python, '-dev')
29+ || endsWith(matrix.python, '-nightly')
30+ )
31+ && true
32+ || false
33+ }}
34+ steps :
35+ - name : Checkout
36+ uses : actions/checkout@v4
37+ with :
38+ persist-credentials : false
39+ - name : Setup python
40+ uses : actions/setup-python@v5
41+ with :
42+ # This allows the matrix to specify just the major.minor version while still
43+ # expanding it to get the latest patch version including alpha releases.
44+ # This avoids the need to update for each new alpha, beta, release candidate,
45+ # and then finally an actual release version. actions/setup-python doesn't
46+ # support this for PyPy presently so we get no help there.
47+ #
48+ # 'CPython' -> '3.9.0-alpha - 3.9.X'
49+ # 'PyPy' -> 'pypy-3.9'
50+ python-version : ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python), matrix.python))[startsWith(matrix.python, 'pypy')] }}
51+ architecture : ' ${{ matrix.arch }}'
52+ cache : pip
53+ cache-dependency-path : test-requirements.txt
54+ - name : Run tests
55+ run : ./ci.sh
56+ shell : bash
5357
5458 Ubuntu :
5559 name : ' Ubuntu (${{ matrix.python }}${{ matrix.extra_name }})'
5660 timeout-minutes : 10
5761 runs-on : ' ubuntu-latest'
58- # Only run for PRs or pushes to main
59- if : github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref == 'refs/heads/main')
6062 strategy :
6163 fail-fast : false
6264 matrix :
63- python : ['3.10', '3.11', '3.12', '3.13']
65+ python : ['3.9', '3. 10', '3.11', '3.12', '3.13']
6466 check_formatting : ['0']
6567 extra_name : ['']
6668 include :
7880 }}
7981 steps :
8082 - name : Checkout
83+ with :
84+ persist-credentials : false
8185 uses : actions/checkout@v4
8286 - name : Setup python
8387 uses : actions/setup-python@v5
@@ -96,49 +100,51 @@ jobs:
96100 env :
97101 CHECK_FORMATTING : ' ${{ matrix.check_formatting }}'
98102
99- # # macOS:
100- # # name: 'macOS (${{ matrix.python }})'
101- # # timeout-minutes: 15
102- # # runs-on: 'macos-latest'
103- # # strategy:
104- # # fail-fast: false
105- # # matrix:
106- # # python: ['3.10', '3.11', '3.12']
107- # # continue-on-error: >-
108- # # ${{
109- # # (
110- # # endsWith(matrix.python, '-dev')
111- # # || endsWith(matrix.python, '-nightly')
112- # # )
113- # # && true
114- # # || false
115- # # }}
116- # # steps:
117- # # - name: Checkout
118- # # uses: actions/checkout@v4
119- # # - name: Setup python
120- # # uses: actions/setup-python@v5
121- # # with:
122- # # python-version: ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python), matrix.python))[startsWith(matrix.python, 'pypy')] }}
123- # # cache: pip
124- # # cache-dependency-path: test-requirements.txt
125- # # - name: Run tests
126- # # run: ./ci.sh
103+ macOS :
104+ name : ' macOS (${{ matrix.python }})'
105+ timeout-minutes : 15
106+ runs-on : ' macos-latest'
107+ strategy :
108+ fail-fast : false
109+ matrix :
110+ python : ['3.9', '3.10', '3.11', '3.12', '3.13']
111+ continue-on-error : >-
112+ ${{
113+ (
114+ endsWith(matrix.python, '-dev')
115+ || endsWith(matrix.python, '-nightly')
116+ )
117+ && true
118+ || false
119+ }}
120+ steps :
121+ - name : Checkout
122+ uses : actions/checkout@v4
123+ with :
124+ persist-credentials : false
125+ - name : Setup python
126+ uses : actions/setup-python@v5
127+ with :
128+ python-version : ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python), matrix.python))[startsWith(matrix.python, 'pypy')] }}
129+ cache : pip
130+ cache-dependency-path : test-requirements.txt
131+ - name : Run tests
132+ run : ./ci.sh
133+
134+ # https://github.com/marketplace/actions/alls-green#why
135+ check : # This job does nothing and is only used for the branch protection
136+
137+ if : always()
138+
139+ needs :
140+ - Windows
141+ - Ubuntu
142+ - macOS
127143
128- # # # https://github.com/marketplace/actions/alls-green#why
129- # # check: # This job does nothing and is only used for the branch protection
130- # #
131- # # if: always()
132- # #
133- # # needs:
134- # # - Windows
135- # # - Ubuntu
136- # # - macOS
137- # #
138- # # runs-on: ubuntu-latest
139- # #
140- # # steps:
141- # # - name: Decide whether the needed jobs succeeded or failed
142- # # uses: re-actors/alls-green@release/v1
143- # # with:
144- # # jobs: ${{ toJSON(needs) }}
144+ runs-on : ubuntu-latest
145+
146+ steps :
147+ - name : Decide whether the needed jobs succeeded or failed
148+ uses : re-actors/alls-green@release/v1
149+ with :
150+ jobs : ${{ toJSON(needs) }}
0 commit comments