@@ -11,6 +11,7 @@ parameters:
11
11
- ' Yhg1s'
12
12
- ' pablogsal'
13
13
- ' ambv'
14
+ - ' zooba'
14
15
- ' (Other)'
15
16
- name : GitRemote_Other
16
17
displayName : " If Other, specify Git remote"
@@ -39,7 +40,7 @@ parameters:
39
40
- name : SigningDescription
40
41
displayName : " Signature description"
41
42
type : string
42
- default : ' Built: $(Build.BuildNumber )'
43
+ default : ' (default )'
43
44
- name : DoGPG
44
45
displayName : " Include GPG signatures (3.13 and earlier)"
45
46
type : boolean
@@ -52,14 +53,6 @@ parameters:
52
53
displayName : " Publish ARM64 build (3.11 and later)"
53
54
type : boolean
54
55
default : true
55
- # Because there is no ARM64 Tcl/Tk pre-3.11, we need a separate option
56
- # to keep those builds working when the files are going to be absent.
57
- # Eventually when we stop releasing anything that old, we can drop this
58
- # argument (and make it implicitly always 'true')
59
- - name : ARM64TclTk
60
- displayName : " Use Tcl/Tk for ARM64 (3.11 and later)"
61
- type : boolean
62
- default : true
63
56
- name : DoPGO
64
57
displayName : " Run PGO"
65
58
type : boolean
@@ -88,15 +81,32 @@ parameters:
88
81
displayName : " Produce EXE/MSI installer"
89
82
type : boolean
90
83
default : true
84
+ - name : DoPyManager
85
+ displayName : " Produce PyManager package"
86
+ type : boolean
87
+ default : true
91
88
- name : BuildToPublish
92
- displayName : " Build number to publish (0 to skip)"
93
- type : number
94
- default : ' 0'
89
+ displayName : " Republish a build (select in Resources)"
90
+ type : string
91
+ default : current
92
+ values : ['current', 'build_to_publish']
93
+ - name : BuildToPackage
94
+ displayName : " Repackage and publish a build (select in Resources)"
95
+ type : string
96
+ default : current
97
+ values : ['current', 'build_to_package']
95
98
- name : SignNuget
96
99
displayName : " Enable Nuget signing (not recommended right now)"
97
100
type : boolean
98
101
default : false
99
102
103
+ resources :
104
+ pipelines :
105
+ - pipeline : build_to_publish
106
+ source : ' Windows-Release'
107
+ - pipeline : build_to_package
108
+ source : ' Windows-Release'
109
+
100
110
variables :
101
111
${{ if ne(parameters.GitRemote, '(Other)') }} :
102
112
GitRemote : ${{ parameters.GitRemote }}
@@ -105,22 +115,12 @@ variables:
105
115
SourceTag : ${{ parameters.SourceTag }}
106
116
${{ if ne(parameters.SourceCommit, 'empty') }} :
107
117
SourceCommit : ${{ parameters.SourceCommit }}
108
- ${{ else }} :
109
- SourceCommit : ' '
110
- ${{ if ne(parameters.SigningCertificate, 'Unsigned') }} :
111
- SigningCertificate : ${{ parameters.SigningCertificate }}
112
- SigningDescription : ${{ parameters.SigningDescription }}
113
118
${{ if eq(parameters.SigningCertificate, 'PythonSoftwareFoundation') }} :
114
119
IsRealSigned : true
115
120
${{ else }} :
116
121
IsRealSigned : false
117
- DoFreethreaded : ${{ parameters.DoFreethreaded }}
118
- DoLayout : ${{ parameters.DoLayout }}
119
- DoMSIX : ${{ parameters.DoMSIX }}
120
- DoNuget : ${{ parameters.DoNuget }}
121
- DoEmbed : ${{ parameters.DoEmbed }}
122
- DoMSI : ${{ parameters.DoMSI }}
123
- DoPublish : ${{ parameters.DoPublish }}
122
+ ${{ if ne(parameters.SigningDescription, '(default)') }} :
123
+ SigningDescription : ${{ parameters.SigningDescription }}
124
124
PublishARM64 : ${{ parameters.DoARM64 }}
125
125
# QUEUE TIME VARIABLES
126
126
# PyDotOrgUsername: ''
@@ -130,144 +130,133 @@ trigger: none
130
130
pr : none
131
131
132
132
stages :
133
- - ${{ if eq(parameters.BuildToPublish, '0' ) }} :
133
+ - ${{ if and( eq(parameters.BuildToPublish, 'current'), eq(parameters.BuildToPackage, 'current') ) }} :
134
134
- stage : Build
135
135
displayName : Build binaries
136
136
jobs :
137
137
- template : stage-build.yml
138
138
parameters :
139
- ARM64TclTk : ${{ parameters.ARM64TclTk }}
140
139
DoFreethreaded : ${{ parameters.DoFreethreaded }}
141
140
DoPGO : ${{ parameters.DoPGO }}
142
141
DoPGOARM64 : ${{ parameters.DoPGOARM64 }}
142
+ ${{ if and(parameters.SigningCertificate, ne(parameters.SigningCertificate, 'Unsigned')) }} :
143
+ ToBeSigned : true
143
144
144
145
- stage : Sign
145
146
displayName : Sign binaries
146
147
dependsOn : Build
147
148
jobs :
148
149
- template : stage-sign.yml
149
150
parameters :
150
- ${{ if and(parameters.SigningCertificate, ne(parameters.SigningCertificate, 'Unsigned')) }} :
151
- SigningCertificate : ${{ parameters.SigningCertificate }}
151
+ SigningCertificate : ${{ parameters.SigningCertificate }}
152
152
DoFreethreaded : ${{ parameters.DoFreethreaded }}
153
153
154
+ - ${{ if eq(parameters.BuildToPublish, 'current') }} :
154
155
- stage : Layout
155
- displayName : Generate layouts
156
- dependsOn : Sign
156
+ ${{ if eq(parameters.BuildToPackage, 'current') }} :
157
+ displayName : Generate layouts
158
+ dependsOn : Sign
159
+ ${{ else }} :
160
+ displayName : Generate layouts from prior build
161
+ dependsOn : []
157
162
jobs :
158
163
- template : stage-layout-full.yml
159
164
parameters :
160
- ARM64TclTk : ${{ parameters.ARM64TclTk }}
165
+ BuildToPackage : ${{ parameters.BuildToPackage }}
161
166
DoFreethreaded : ${{ parameters.DoFreethreaded }}
162
- - template : stage-layout-embed.yml
163
- - template : stage-layout-nuget.yml
167
+ - template : stage-layout-symbols.yml
164
168
parameters :
169
+ BuildToPackage : ${{ parameters.BuildToPackage }}
165
170
DoFreethreaded : ${{ parameters.DoFreethreaded }}
171
+ - ${{ if eq(parameters.DoEmbed, 'true') }} :
172
+ - template : stage-layout-embed.yml
173
+ parameters :
174
+ BuildToPackage : ${{ parameters.BuildToPackage }}
175
+ - ${{ if eq(parameters.DoNuget, 'true') }} :
176
+ - template : stage-layout-nuget.yml
177
+ parameters :
178
+ BuildToPackage : ${{ parameters.BuildToPackage }}
179
+ DoFreethreaded : ${{ parameters.DoFreethreaded }}
180
+ - ${{ if eq(parameters.DoMSIX, 'true') }} :
181
+ - template : stage-layout-msix.yml
182
+ parameters :
183
+ BuildToPackage : ${{ parameters.BuildToPackage }}
184
+ - ${{ if eq(parameters.DoPyManager, 'true') }} :
185
+ - template : stage-layout-pymanager.yml
186
+ parameters :
187
+ BuildToPackage : ${{ parameters.BuildToPackage }}
188
+ DoFreethreaded : ${{ parameters.DoFreethreaded }}
189
+ DoEmbed : ${{ parameters.DoEmbed }}
166
190
167
191
- stage : Pack
168
192
dependsOn : Layout
193
+ displayName : Pack
169
194
jobs :
170
- - template : stage-pack-nuget.yml
171
- parameters :
172
- ${{ if and(parameters.SigningCertificate, ne(parameters.SigningCertificate, 'Unsigned')) }} :
173
- ${{ if eq(parameters.SignNuget, 'true') }} :
174
- SigningCertificate : ${{ parameters.SigningCertificate }}
175
- DoFreethreaded : ${{ parameters.DoFreethreaded }}
176
-
177
- - stage : Test
178
- dependsOn : Pack
179
- jobs :
180
- - template : stage-test-embed.yml
181
- - template : stage-test-nuget.yml
182
- parameters :
183
- DoFreethreaded : ${{ parameters.DoFreethreaded }}
184
-
185
- - ${{ if eq(parameters.DoMSIX, 'true') }} :
186
- - stage : Layout_MSIX
187
- displayName : Generate MSIX layouts
188
- dependsOn : Sign
189
- jobs :
190
- - template : stage-layout-msix.yml
195
+ # - ${{ if eq(parameters.DoEmbed, 'true') }}:
196
+ # - template: stage-pack-embed.yml
197
+ - ${{ if eq(parameters.DoMSI, 'true') }} :
198
+ - template : stage-msi.yml
191
199
parameters :
192
- ARM64TclTk : ${{ parameters.ARM64TclTk }}
193
-
194
- - stage : Pack_MSIX
195
- displayName : Package MSIX
196
- dependsOn : Layout_MSIX
197
- jobs :
200
+ BuildToPackage : ${{ parameters.BuildToPackage }}
201
+ DoARM64 : ${{ parameters.DoARM64}}
202
+ DoFreethreaded : ${{ parameters.DoFreethreaded }}
203
+ - ${{ if eq(parameters.DoMSIX, 'true') }} :
198
204
- template : stage-pack-msix.yml
199
205
parameters :
200
206
${{ if and(parameters.SigningCertificate, ne(parameters.SigningCertificate, 'Unsigned')) }} :
201
207
SigningCertificate : ${{ parameters.SigningCertificate }}
202
-
203
- - ${{ if eq(parameters.DoMSI, 'true') }} :
204
- - stage : Build_MSI
205
- displayName : Build MSI installer
206
- dependsOn : Sign
207
- jobs :
208
- - template : stage-msi.yml
208
+ - ${{ if eq(parameters.DoNuget, 'true') }} :
209
+ - template : stage-pack-nuget.yml
209
210
parameters :
210
- ARM64TclTk : ${{ parameters.ARM64TclTk }}
211
- ${{ if and(parameters.SigningCertificate, ne(parameters.SigningCertificate, 'Unsigned')) }} :
212
- SigningCertificate : ${{ parameters.SigningCertificate }}
213
- DoARM64 : ${{ parameters.DoARM64}}
211
+ ${{ if eq(parameters.SignNuget, 'true') }} :
212
+ ${{ if and(parameters.SigningCertificate, ne(parameters.SigningCertificate, 'Unsigned')) }} :
213
+ SigningCertificate : ${{ parameters.SigningCertificate }}
214
214
DoFreethreaded : ${{ parameters.DoFreethreaded }}
215
-
216
- - stage : Test_MSI
217
- displayName : Test MSI installer
218
- dependsOn : Build_MSI
219
- jobs :
220
- - template : stage-test-msi.yml
215
+ - ${{ if eq(parameters.DoPyManager, 'true') }} :
216
+ - template : stage-pack-pymanager.yml
221
217
parameters :
222
218
DoFreethreaded : ${{ parameters.DoFreethreaded }}
219
+ DoEmbed : ${{ parameters.DoEmbed }}
223
220
224
- - ${{ if eq(parameters.DoPublish, 'true') }} :
221
+ - stage : Test
222
+ dependsOn : Pack
223
+ jobs :
224
+ - ${{ if eq(parameters.DoEmbed, 'true') }} :
225
+ - template : stage-test-embed.yml
225
226
- ${{ if eq(parameters.DoMSI, 'true') }} :
226
- - stage : PublishPyDotOrg
227
- displayName : Publish to python.org
228
- dependsOn : ['Test_MSI', 'Test']
229
- jobs :
230
- - template : stage-publish-pythonorg.yml
231
- parameters :
232
- IncludeGPG : ${{ parameters.DoGPG }}
233
-
227
+ - template : stage-test-msi.yml
228
+ parameters :
229
+ DoFreethreaded : ${{ parameters.DoFreethreaded }}
234
230
- ${{ if eq(parameters.DoNuget, 'true') }} :
235
- - stage : PublishNuget
236
- displayName : Publish to nuget.org
237
- ${{ if eq(parameters.DoMSI, 'true') }} :
238
- dependsOn : ['Test_MSI', 'Test']
239
- ${{ else }} :
240
- dependsOn : ' Test'
241
- jobs :
242
- - template : stage-publish-nugetorg.yml
243
-
244
- - ${{ if eq(parameters.DoMSIX, 'true') }} :
245
- - stage : PublishStore
246
- displayName : Publish to Store
247
- ${{ if eq(parameters.DoMSI, 'true') }} :
248
- dependsOn : ['Test_MSI', 'Pack_MSIX']
249
- ${{ else }} :
250
- dependsOn : ' Pack_MSIX'
251
- jobs :
252
- - template : stage-publish-store.yml
231
+ - template : stage-test-nuget.yml
232
+ parameters :
233
+ DoFreethreaded : ${{ parameters.DoFreethreaded }}
234
+ - ${{ if eq(parameters.DoPyManager, 'true') }} :
235
+ - template : stage-test-pymanager.yml
236
+ parameters :
237
+ DoEmbed : ${{ parameters.DoEmbed }}
238
+ DoFreethreaded : ${{ parameters.DoFreethreaded }}
253
239
254
- - ${{ else }} :
255
- - stage : PublishExisting
256
- displayName : Publish existing build
257
- dependsOn : []
240
+ - ${{ if eq(parameters.DoPublish, 'true') }} :
241
+ - stage : Publish
242
+ displayName : Publish
243
+ dependsOn :
244
+ - ${{ if eq(parameters.BuildToPublish, 'current') }} :
245
+ - Test
258
246
jobs :
247
+ - ${{ if eq(parameters.DoPyManager, 'true') }} :
248
+ - template : stage-publish-pymanager.yml
249
+ parameters :
250
+ BuildToPublish : ${{ parameters.BuildToPublish }}
251
+ DoEmbed : ${{ parameters.DoEmbed }}
252
+ DoFreethreaded : ${{ parameters.DoFreethreaded }}
259
253
- ${{ if eq(parameters.DoMSI, 'true') }} :
260
254
- template : stage-publish-pythonorg.yml
261
255
parameters :
262
256
BuildToPublish : ${{ parameters.BuildToPublish }}
257
+ DoEmbed : ${{ parameters.DoEmbed }}
263
258
IncludeGPG : ${{ parameters.DoGPG }}
264
-
265
259
- ${{ if eq(parameters.DoNuget, 'true') }} :
266
260
- template : stage-publish-nugetorg.yml
267
261
parameters :
268
262
BuildToPublish : ${{ parameters.BuildToPublish }}
269
-
270
- - ${{ if eq(parameters.DoMSIX, 'true') }} :
271
- - template : stage-publish-store.yml
272
- parameters :
273
- BuildToPublish : ${{ parameters.BuildToPublish }}
0 commit comments