@@ -38,10 +38,22 @@ parameters:
3838 displayName : " Publish ARM64 build"
3939 type : boolean
4040 default : true
41+ # Because there is no ARM64 Tcl/Tk pre-3.11, we need a separate option
42+ # to keep those builds working when the files are going to be absent.
43+ # Eventually when we stop releasing anything that old, we can drop this
44+ # argument (and make it implicitly always 'true')
45+ - name : ARM64TclTk
46+ displayName : " Use Tcl/Tk for ARM64 (3.11 and later)"
47+ type : boolean
48+ default : true
4149- name : DoPGO
4250 displayName : " Run PGO"
4351 type : boolean
4452 default : true
53+ - name : DoCHM
54+ displayName : " Produce compiled help document (pre-3.11)"
55+ type : boolean
56+ default : false
4557- name : DoLayout
4658 displayName : " Produce full layout artifact"
4759 type : boolean
@@ -78,6 +90,7 @@ variables:
7890 ${{ if ne(parameters.SigningCertificate, 'Unsigned') }} :
7991 SigningCertificate : ${{ parameters.SigningCertificate }}
8092 SigningDescription : ${{ parameters.SigningDescription }}
93+ DoCHM : ${{ parameters.DoCHM }}
8194 DoLayout : ${{ parameters.DoLayout }}
8295 DoMSIX : ${{ parameters.DoMSIX }}
8396 DoNuget : ${{ parameters.DoNuget }}
@@ -98,6 +111,8 @@ stages:
98111 displayName : Build binaries
99112 jobs :
100113 - template : windows-release/stage-build.yml
114+ parameters :
115+ ARM64TclTk : ${{ parameters.ARM64TclTk }}
101116
102117 - stage : Sign
103118 displayName : Sign binaries
@@ -110,6 +125,8 @@ stages:
110125 dependsOn : Sign
111126 jobs :
112127 - template : windows-release/stage-layout-full.yml
128+ parameters :
129+ ARM64TclTk : ${{ parameters.ARM64TclTk }}
113130 - template : windows-release/stage-layout-embed.yml
114131 - template : windows-release/stage-layout-nuget.yml
115132
@@ -124,65 +141,80 @@ stages:
124141 - template : windows-release/stage-test-embed.yml
125142 - template : windows-release/stage-test-nuget.yml
126143
127- - stage : Layout_MSIX
128- displayName : Generate MSIX layouts
129- dependsOn : Sign
130- condition : and(succeeded(), eq(variables['DoMSIX'], 'true'))
131- jobs :
132- - template : windows-release/stage-layout-msix.yml
133-
134- - stage : Pack_MSIX
135- displayName : Package MSIX
136- dependsOn : Layout_MSIX
137- jobs :
138- - template : windows-release/stage-pack-msix.yml
139-
140- - stage : Build_MSI
141- displayName : Build MSI installer
142- dependsOn : Sign
143- condition : and(succeeded(), eq(variables['DoMSI'], 'true'))
144- jobs :
145- - template : windows-release/stage-msi.yml
146-
147- - stage : Test_MSI
148- displayName : Test MSI installer
149- dependsOn : Build_MSI
150- jobs :
151- - template : windows-release/stage-test-msi.yml
144+ - ${{ if eq(parameters.DoMSIX, 'true') }} :
145+ - stage : Layout_MSIX
146+ displayName : Generate MSIX layouts
147+ dependsOn : Sign
148+ jobs :
149+ - template : windows-release/stage-layout-msix.yml
150+ parameters :
151+ ARM64TclTk : ${{ parameters.ARM64TclTk }}
152152
153- - ${{ if eq(parameters.DoPublish, 'true') }} :
154- - stage : PublishPyDotOrg
155- displayName : Publish to python.org
156- dependsOn : ['Test_MSI', 'Test']
153+ - stage : Pack_MSIX
154+ displayName : Package MSIX
155+ dependsOn : Layout_MSIX
157156 jobs :
158- - template : windows-release/stage-publish-pythonorg .yml
157+ - template : windows-release/stage-pack-msix .yml
159158
160- - stage : PublishNuget
161- displayName : Publish to nuget.org
162- dependsOn : Test
159+ - ${{ if eq(parameters.DoMSI, 'true') }} :
160+ - stage : Build_MSI
161+ displayName : Build MSI installer
162+ dependsOn : Sign
163163 jobs :
164- - template : windows-release/stage-publish-nugetorg.yml
164+ - template : windows-release/stage-msi.yml
165+ parameters :
166+ ARM64TclTk : ${{ parameters.ARM64TclTk }}
165167
166- - stage : PublishStore
167- displayName : Publish to Store
168- dependsOn : Pack_MSIX
168+ - stage : Test_MSI
169+ displayName : Test MSI installer
170+ dependsOn : Build_MSI
169171 jobs :
170- - template : windows-release/stage-publish-store.yml
172+ - template : windows-release/stage-test-msi.yml
173+
174+ - ${{ if eq(parameters.DoPublish, 'true') }} :
175+ - ${{ if eq(parameters.DoMSI, 'true') }} :
176+ - stage : PublishPyDotOrg
177+ displayName : Publish to python.org
178+ dependsOn : ['Test_MSI', 'Test']
179+ jobs :
180+ - template : windows-release/stage-publish-pythonorg.yml
181+
182+ - ${{ if eq(parameters.DoNuget, 'true') }} :
183+ - stage : PublishNuget
184+ displayName : Publish to nuget.org
185+ ${{ if eq(parameters.DoMSI, 'true') }} :
186+ dependsOn : ['Test_MSI', 'Test']
187+ ${{ else }} :
188+ dependsOn : ' Test'
189+ jobs :
190+ - template : windows-release/stage-publish-nugetorg.yml
191+
192+ - ${{ if eq(parameters.DoMSIX, 'true') }} :
193+ - stage : PublishStore
194+ displayName : Publish to Store
195+ ${{ if eq(parameters.DoMSI, 'true') }} :
196+ dependsOn : ['Test_MSI', 'Pack_MSIX']
197+ ${{ else }} :
198+ dependsOn : ' Pack_MSIX'
199+ jobs :
200+ - template : windows-release/stage-publish-store.yml
171201
172202- ${{ else }} :
173203 - stage : PublishExisting
174204 displayName : Publish existing build
175205 dependsOn : []
176- condition : and(succeeded(), eq(variables['DoPublish'], 'true'))
177206 jobs :
178- - template : windows-release/stage-publish-pythonorg.yml
179- parameters :
180- BuildToPublish : ${{ parameters.BuildToPublish }}
207+ - ${{ if eq(parameters.DoMSI, 'true') }} :
208+ - template : windows-release/stage-publish-pythonorg.yml
209+ parameters :
210+ BuildToPublish : ${{ parameters.BuildToPublish }}
181211
182- - template : windows-release/stage-publish-nugetorg.yml
183- parameters :
184- BuildToPublish : ${{ parameters.BuildToPublish }}
212+ - ${{ if eq(parameters.DoNuget, 'true') }} :
213+ - template : windows-release/stage-publish-nugetorg.yml
214+ parameters :
215+ BuildToPublish : ${{ parameters.BuildToPublish }}
185216
186- - template : windows-release/stage-publish-store.yml
187- parameters :
188- BuildToPublish : ${{ parameters.BuildToPublish }}
217+ - ${{ if eq(parameters.DoMSIX, 'true') }} :
218+ - template : windows-release/stage-publish-store.yml
219+ parameters :
220+ BuildToPublish : ${{ parameters.BuildToPublish }}
0 commit comments