20
20
pip-version :
21
21
- ' 24.2'
22
22
setuptools-version :
23
+ - ' 75.1'
24
+ - ' 74.1'
25
+ - ' 73.0'
23
26
- ' 72.1'
24
27
- ' 71.1'
25
28
- ' 70.3'
@@ -43,162 +46,152 @@ jobs:
43
46
with-venv : false
44
47
python-version : ${{ matrix.python-version }}
45
48
pyb-extra-args : ${{ env.PYB_EXTRA_ARGS }}
46
- build-primary :
49
+ read-exclusions :
50
+ runs-on : ubuntu-latest
47
51
needs : build-smoke-test
48
- runs-on : ${{ matrix.os }}
49
- continue-on-error : false
50
- strategy :
51
- fail-fast : false
52
- matrix :
53
- os :
54
- - ubuntu-latest
55
- - macos-13
56
- python-version :
57
- - ' 3.12'
58
- - ' 3.11'
59
- - ' 3.10'
60
- pip-version :
61
- - ' 24.2'
62
- - ' 24.1'
63
- - ' 24.0'
64
- - ' 23.3'
65
- - ' 22.3'
66
- setuptools-version :
67
- - ' 72.1'
68
- - ' 71.1'
69
- - ' 70.3'
70
- - ' 69.5'
71
- - ' 68.2'
72
- - ' 67.8'
73
- - ' 66.1'
74
- - ' 65.7'
75
- exclude :
76
- - python-version : ' 3.12'
77
- setuptools-version : ' 65.7'
78
- - python-version : ' 3.12'
79
- pip-version : ' 22.3'
80
- env :
81
- DEPLOY_PYTHONS : " 3.12"
82
- DEPLOY_OSES : " Linux"
83
- DEPLOY_PIPS : " 24.2"
84
- DEPLOY_SETUPTOOLS : " 72.1"
85
- TWINE_USERNAME : __token__
86
- TWINE_PASSWORD : ${{ secrets.PYPI_TOKEN }}
87
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
52
+ outputs :
53
+ BUILD_EXCLUSIONS : ${{ steps.read-exclusions-step.outputs.BUILD_EXCLUSIONS }}
88
54
steps :
89
55
- uses : actions/checkout@v4
90
- - shell : bash
91
- run : |
92
- echo "PYB_EXTRA_ARGS=--no-venvs" >> $GITHUB_ENV
93
- echo "SETUPTOOLS_VER=~=${{matrix.setuptools-version}}" >> $GITHUB_ENV
94
- echo "PIP_VER=~=${{matrix.pip-version}}" >> $GITHUB_ENV
95
-
96
- - shell : bash
97
- if : |
98
- github.event_name == 'push' &&
99
- contains(env.DEPLOY_OSES, runner.os) &&
100
- contains(env.DEPLOY_PYTHONS, matrix.python-version) &&
101
- contains(env.DEPLOY_PIPS, matrix.pip-version) &&
102
- contains(env.DEPLOY_SETUPTOOLS, matrix.setuptools-version)
56
+ - id : read-exclusions-step
103
57
run : |
104
- echo "PYB_EXTRA_ARGS=+upload --no-venvs" >> $GITHUB_ENV
58
+ set -xeEu
59
+ set -o pipefail
60
+ {
61
+ echo 'BUILD_EXCLUSIONS<<EOF'
62
+ cat ./.github/exclusions.json
63
+ echo -e '\nEOF'
64
+ } >> "$GITHUB_OUTPUT"
105
65
106
- - uses : pybuilder/build@master
107
- with :
108
- checkout : false
109
- with-venv : false
110
- python-version : ${{ matrix.python-version }}
111
- pyb-extra-args : ${{ env.PYB_EXTRA_ARGS }}
112
- build-secondary :
113
- needs : build-primary
114
- runs-on : ${{ matrix.os }}
115
- continue-on-error : false
116
- strategy :
117
- fail-fast : false
118
- matrix :
119
- os :
120
- - ubuntu-latest
121
- - macos-13
122
- python-version :
123
- - ' 3.9'
124
- - ' 3.8'
125
- pip-version :
126
- - ' 24.2'
127
- - ' 24.1'
128
- - ' 24.0'
129
- - ' 23.3'
130
- - ' 22.3'
131
- setuptools-version :
132
- - ' 72.1'
133
- - ' 71.1'
134
- - ' 70.3'
135
- - ' 69.5'
136
- - ' 68.2'
137
- - ' 67.8'
138
- - ' 66.1'
139
- - ' 65.7'
140
- - ' 64.0'
141
- - ' 63.4'
142
- - ' 62.6'
143
- env :
144
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
145
- steps :
146
- - uses : actions/checkout@v4
147
- - shell : bash
148
- run : |
149
- echo "PYB_EXTRA_ARGS=--no-venvs" >> $GITHUB_ENV
150
- echo "SETUPTOOLS_VER=~=${{matrix.setuptools-version}}" >> $GITHUB_ENV
151
- echo "PIP_VER=~=${{matrix.pip-version}}" >> $GITHUB_ENV
152
-
153
- - uses : pybuilder/build@master
154
- with :
155
- checkout : false
156
- with-venv : false
157
- python-version : ${{ matrix.python-version }}
158
- pyb-extra-args : ${{ env.PYB_EXTRA_ARGS }}
159
- build-experimental :
160
- needs : build-primary
161
- runs-on : ${{ matrix.os }}
162
- continue-on-error : true
163
- strategy :
164
- fail-fast : false
165
- matrix :
166
- os :
167
- - ubuntu-latest
168
- - macos-13
169
- python-version :
170
- - ' 3.13-dev'
171
- pip-version :
172
- - ' 24.2'
173
- setuptools-version :
174
- - ' 72.1'
175
- env :
176
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
177
- steps :
178
- - uses : actions/checkout@v4
179
- - shell : bash
180
- run : |
181
- echo "PYB_EXTRA_ARGS=--no-venvs" >> $GITHUB_ENV
182
- echo "SETUPTOOLS_VER=~=${{matrix.setuptools-version}}" >> $GITHUB_ENV
183
- echo "PIP_VER=~=${{matrix.pip-version}}" >> $GITHUB_ENV
184
-
185
- - uses : pybuilder/build@master
186
- with :
187
- checkout : false
188
- with-venv : false
189
- python-version : ${{ matrix.python-version }}
190
- pyb-extra-args : ${{ env.PYB_EXTRA_ARGS }}
66
+ build-ubuntu-py312 :
67
+ uses : ./.github/workflows/template.yml
68
+ with :
69
+ os : ubuntu-latest
70
+ python-version : ' 3.12'
71
+ deploy : ${{ github.event_name == 'push' }}
72
+ deploy-pip : ' 24.2'
73
+ deploy-setuptools : ' 75.1'
74
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
75
+ secrets : inherit
76
+ needs : [ read-exclusions ]
77
+ build-macos-py312 :
78
+ uses : ./.github/workflows/template.yml
79
+ with :
80
+ os : macos-13
81
+ python-version : ' 3.12'
82
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
83
+ secrets : inherit
84
+ needs : [ build-ubuntu-py312, read-exclusions ]
85
+ build-ubuntu-py311 :
86
+ uses : ./.github/workflows/template.yml
87
+ with :
88
+ os : ubuntu-latest
89
+ python-version : ' 3.11'
90
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
91
+ secrets : inherit
92
+ needs : [ read-exclusions ]
93
+ build-macos-py311 :
94
+ uses : ./.github/workflows/template.yml
95
+ with :
96
+ os : macos-13
97
+ python-version : ' 3.11'
98
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
99
+ secrets : inherit
100
+ needs : [ build-ubuntu-py311, read-exclusions ]
101
+ build-ubuntu-py310 :
102
+ uses : ./.github/workflows/template.yml
103
+ with :
104
+ os : ubuntu-latest
105
+ python-version : ' 3.10'
106
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
107
+ secrets : inherit
108
+ needs : [ read-exclusions ]
109
+ build-macos-py310 :
110
+ uses : ./.github/workflows/template.yml
111
+ with :
112
+ os : macos-13
113
+ python-version : ' 3.10'
114
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
115
+ secrets : inherit
116
+ needs : [ build-ubuntu-py310, read-exclusions ]
117
+ build-ubuntu-py39 :
118
+ uses : ./.github/workflows/template.yml
119
+ with :
120
+ os : ubuntu-latest
121
+ python-version : ' 3.9'
122
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
123
+ secrets : inherit
124
+ needs : [ read-exclusions ]
125
+ build-macos-py39 :
126
+ uses : ./.github/workflows/template.yml
127
+ with :
128
+ os : macos-13
129
+ python-version : ' 3.9'
130
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
131
+ secrets : inherit
132
+ needs : [ build-ubuntu-py39, read-exclusions ]
133
+ build-ubuntu-py38 :
134
+ uses : ./.github/workflows/template.yml
135
+ with :
136
+ os : ubuntu-latest
137
+ python-version : ' 3.8'
138
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
139
+ secrets : inherit
140
+ needs : [ read-exclusions ]
141
+ build-macos-py38 :
142
+ uses : ./.github/workflows/template.yml
143
+ with :
144
+ os : macos-13
145
+ python-version : ' 3.8'
146
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
147
+ secrets : inherit
148
+ needs : [ build-ubuntu-py38, read-exclusions ]
149
+ build-ubuntu-py313 :
150
+ uses : ./.github/workflows/template.yml
151
+ with :
152
+ os : ubuntu-latest
153
+ python-version : ' 3.13-dev'
154
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
155
+ secrets : inherit
156
+ needs : [ read-exclusions ]
157
+ build-macos-py313 :
158
+ uses : ./.github/workflows/template.yml
159
+ with :
160
+ os : macos-13
161
+ python-version : ' 3.13-dev'
162
+ exclude : ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
163
+ secrets : inherit
164
+ needs : [ build-ubuntu-py313, read-exclusions ]
191
165
build-summary :
192
166
if : success() || failure()
193
167
runs-on : ubuntu-latest
194
168
name : Build Summary
195
169
needs :
196
- - build-primary
197
- - build-secondary
198
- - build-experimental
170
+ - build-ubuntu-py313
171
+ - build-macos-py313
172
+ - build-ubuntu-py312
173
+ - build-macos-py312
174
+ - build-ubuntu-py311
175
+ - build-macos-py311
176
+ - build-ubuntu-py310
177
+ - build-macos-py310
178
+ - build-ubuntu-py39
179
+ - build-macos-py39
180
+ - build-ubuntu-py38
181
+ - build-macos-py38
199
182
steps :
200
183
- name : Check build matrix status
201
184
if : |
202
- needs.build-primary.result != 'success' ||
203
- needs.build-secondary.result != 'success'
185
+ needs.build-ubuntu-py313.result != 'success' ||
186
+ needs.build-macos-py313.result != 'success' ||
187
+ needs.build-ubuntu-py312.result != 'success' ||
188
+ needs.build-macos-py312.result != 'success' ||
189
+ needs.build-ubuntu-py311.result != 'success' ||
190
+ needs.build-macos-py311.result != 'success' ||
191
+ needs.build-ubuntu-py310.result != 'success' ||
192
+ needs.build-macos-py310.result != 'success' ||
193
+ needs.build-ubuntu-py39.result != 'success' ||
194
+ needs.build-macos-py39.result != 'success' ||
195
+ needs.build-ubuntu-py38.result != 'success' ||
196
+ needs.build-macos-py38.result != 'success'
204
197
run : exit 1
0 commit comments