@@ -38,6 +38,14 @@ 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"
47+ type : boolean
48+ default : true
4149- name : DoPGO
4250 displayName : " Run PGO"
4351 type : boolean
@@ -98,6 +106,8 @@ stages:
98106 displayName : Build binaries
99107 jobs :
100108 - template : windows-release/stage-build.yml
109+ parameters :
110+ ARM64TclTk : ${{ parameters.ARM64TclTk }}
101111
102112 - stage : Sign
103113 displayName : Sign binaries
@@ -110,6 +120,8 @@ stages:
110120 dependsOn : Sign
111121 jobs :
112122 - template : windows-release/stage-layout-full.yml
123+ parameters :
124+ ARM64TclTk : ${{ parameters.ARM64TclTk }}
113125 - template : windows-release/stage-layout-embed.yml
114126 - template : windows-release/stage-layout-nuget.yml
115127
@@ -124,65 +136,80 @@ stages:
124136 - template : windows-release/stage-test-embed.yml
125137 - template : windows-release/stage-test-nuget.yml
126138
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
139+ - ${{ if eq(parameters.DoMSIX, 'true') }} :
140+ - stage : Layout_MSIX
141+ displayName : Generate MSIX layouts
142+ dependsOn : Sign
143+ jobs :
144+ - template : windows-release/stage-layout-msix.yml
145+ parameters :
146+ ARM64TclTk : ${{ parameters.ARM64TclTk }}
152147
153- - ${{ if eq(parameters.DoPublish, 'true') }} :
154- - stage : PublishPyDotOrg
155- displayName : Publish to python.org
156- dependsOn : ['Test_MSI', 'Test']
148+ - stage : Pack_MSIX
149+ displayName : Package MSIX
150+ dependsOn : Layout_MSIX
157151 jobs :
158- - template : windows-release/stage-publish-pythonorg .yml
152+ - template : windows-release/stage-pack-msix .yml
159153
160- - stage : PublishNuget
161- displayName : Publish to nuget.org
162- dependsOn : Test
154+ - ${{ if eq(parameters.DoMSI, 'true') }} :
155+ - stage : Build_MSI
156+ displayName : Build MSI installer
157+ dependsOn : Sign
163158 jobs :
164- - template : windows-release/stage-publish-nugetorg.yml
159+ - template : windows-release/stage-msi.yml
160+ parameters :
161+ ARM64TclTk : ${{ parameters.ARM64TclTk }}
165162
166- - stage : PublishStore
167- displayName : Publish to Store
168- dependsOn : Pack_MSIX
163+ - stage : Test_MSI
164+ displayName : Test MSI installer
165+ dependsOn : Build_MSI
169166 jobs :
170- - template : windows-release/stage-publish-store.yml
167+ - template : windows-release/stage-test-msi.yml
168+
169+ - ${{ if eq(parameters.DoPublish, 'true') }} :
170+ - ${{ if eq(parameters.DoMSI, 'true') }} :
171+ - stage : PublishPyDotOrg
172+ displayName : Publish to python.org
173+ dependsOn : ['Test_MSI', 'Test']
174+ jobs :
175+ - template : windows-release/stage-publish-pythonorg.yml
176+
177+ - ${{ if eq(parameters.DoNuget, 'true') }} :
178+ - stage : PublishNuget
179+ displayName : Publish to nuget.org
180+ ${{ if eq(parameters.DoMSI, 'true') }} :
181+ dependsOn : ['Test_MSI', 'Test']
182+ ${{ else }} :
183+ dependsOn : ' Test'
184+ jobs :
185+ - template : windows-release/stage-publish-nugetorg.yml
186+
187+ - ${{ if eq(parameters.DoMSIX, 'true') }} :
188+ - stage : PublishStore
189+ displayName : Publish to Store
190+ ${{ if eq(parameters.DoMSI, 'true') }} :
191+ dependsOn : ['Test_MSI', 'Pack_MSIX']
192+ ${{ else }} :
193+ dependsOn : ' Pack_MSIX'
194+ jobs :
195+ - template : windows-release/stage-publish-store.yml
171196
172197- ${{ else }} :
173198 - stage : PublishExisting
174199 displayName : Publish existing build
175200 dependsOn : []
176- condition : and(succeeded(), eq(variables['DoPublish'], 'true'))
177201 jobs :
178- - template : windows-release/stage-publish-pythonorg.yml
179- parameters :
180- BuildToPublish : ${{ parameters.BuildToPublish }}
202+ - ${{ if eq(parameters.DoMSI, 'true') }} :
203+ - template : windows-release/stage-publish-pythonorg.yml
204+ parameters :
205+ BuildToPublish : ${{ parameters.BuildToPublish }}
181206
182- - template : windows-release/stage-publish-nugetorg.yml
183- parameters :
184- BuildToPublish : ${{ parameters.BuildToPublish }}
207+ - ${{ if eq(parameters.DoNuget, 'true') }} :
208+ - template : windows-release/stage-publish-nugetorg.yml
209+ parameters :
210+ BuildToPublish : ${{ parameters.BuildToPublish }}
185211
186- - template : windows-release/stage-publish-store.yml
187- parameters :
188- BuildToPublish : ${{ parameters.BuildToPublish }}
212+ - ${{ if eq(parameters.DoMSIX, 'true') }} :
213+ - template : windows-release/stage-publish-store.yml
214+ parameters :
215+ BuildToPublish : ${{ parameters.BuildToPublish }}
0 commit comments