Skip to content

Commit e376aae

Browse files
committed
Normalise signing variables in Windows release build
1 parent 17c36be commit e376aae

11 files changed

+75
-63
lines changed

windows-release/azure-pipelines.yml

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ variables:
132132
SourceTag: ${{ parameters.SourceTag }}
133133
${{ if ne(parameters.SourceCommit, 'empty') }}:
134134
SourceCommit: ${{ parameters.SourceCommit }}
135+
SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
135136
${{ if eq(parameters.SigningCertificate, 'PythonSoftwareFoundation') }}:
136137
IsRealSigned: true
137138
${{ else }}:
@@ -140,8 +141,14 @@ variables:
140141
SigningDescription: ${{ parameters.SigningDescription }}
141142
PublishARM64: ${{ parameters.DoARM64 }}
142143
# QUEUE TIME VARIABLES
143-
# PyDotOrgUsername: ''
144-
# PyDotOrgServer: ''
144+
# OverrideNugetVersion: ''
145+
# PyManagerIndexFilename: ''
146+
# SkipNugetPublish: ''
147+
# SkipPipTests: ''
148+
# SkipPythonOrgPublish: ''
149+
# SkipSBOM: ''
150+
# SkipTests: ''
151+
# SkipTkTests: ''
145152

146153
trigger: none
147154
pr: none
@@ -193,61 +200,67 @@ stages:
193200
parameters:
194201
BuildToPackage: ${{ parameters.BuildToPackage }}
195202
DoFreethreaded: ${{ parameters.DoFreethreaded }}
203+
SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
196204
- template: stage-layout-symbols.yml
197205
parameters:
198206
BuildToPackage: ${{ parameters.BuildToPackage }}
199207
DoFreethreaded: ${{ parameters.DoFreethreaded }}
208+
SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
200209
- ${{ if eq(parameters.DoEmbed, 'true') }}:
201210
- template: stage-layout-embed.yml
202211
parameters:
203212
BuildToPackage: ${{ parameters.BuildToPackage }}
213+
SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
204214
- ${{ if eq(parameters.DoNuget, 'true') }}:
205215
- template: stage-layout-nuget.yml
206216
parameters:
207217
BuildToPackage: ${{ parameters.BuildToPackage }}
208218
DoFreethreaded: ${{ parameters.DoFreethreaded }}
219+
SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
209220
- ${{ if eq(parameters.DoMSIX, 'true') }}:
210221
- template: stage-layout-msix.yml
211222
parameters:
212223
BuildToPackage: ${{ parameters.BuildToPackage }}
224+
SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
213225
- ${{ if eq(parameters.DoPyManager, 'true') }}:
214226
- template: stage-layout-pymanager.yml
215227
parameters:
216228
BuildToPackage: ${{ parameters.BuildToPackage }}
217229
DoFreethreaded: ${{ parameters.DoFreethreaded }}
218230
DoEmbed: ${{ parameters.DoEmbed }}
231+
SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
219232

220233
- stage: Pack
221234
dependsOn: Layout
222235
displayName: Pack
223236
jobs:
224237
#- ${{ if eq(parameters.DoEmbed, 'true') }}:
225238
# - template: stage-pack-embed.yml
239+
# parameters:
240+
# SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
226241
- ${{ if eq(parameters.DoMSI, 'true') }}:
227242
- template: stage-msi.yml
228243
parameters:
229244
BuildToPackage: ${{ parameters.BuildToPackage }}
230245
DoARM64: ${{ parameters.DoARM64}}
231246
DoFreethreaded: ${{ parameters.DoFreethreaded }}
232-
${{ if and(parameters.SigningCertificate, ne(parameters.SigningCertificate, 'Unsigned')) }}:
233-
SigningCertificate: ${{ parameters.SigningCertificate }}
247+
SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
234248
- ${{ if eq(parameters.DoMSIX, 'true') }}:
235249
- template: stage-pack-msix.yml
236250
parameters:
237-
${{ if and(parameters.SigningCertificate, ne(parameters.SigningCertificate, 'Unsigned')) }}:
238-
SigningCertificate: ${{ parameters.SigningCertificate }}
251+
SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
239252
- ${{ if eq(parameters.DoNuget, 'true') }}:
240253
- template: stage-pack-nuget.yml
241254
parameters:
242255
${{ if eq(parameters.SignNuget, 'true') }}:
243-
${{ if and(parameters.SigningCertificate, ne(parameters.SigningCertificate, 'Unsigned')) }}:
244-
SigningCertificate: ${{ parameters.SigningCertificate }}
256+
SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
245257
DoFreethreaded: ${{ parameters.DoFreethreaded }}
246258
- ${{ if eq(parameters.DoPyManager, 'true') }}:
247259
- template: stage-pack-pymanager.yml
248260
parameters:
249261
DoFreethreaded: ${{ parameters.DoFreethreaded }}
250262
DoEmbed: ${{ parameters.DoEmbed }}
263+
SigningCertificate: ${{ iif(eq(parameters.SigningCertificate, 'Unsigned'), '', parameters.SigningCertificate) }}
251264

252265
- stage: Test
253266
dependsOn: Pack

windows-release/stage-layout-embed.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
parameters:
22
BuildToPackage: current
3+
SigningCertificate: ''
34

45
jobs:
56
- job: Make_Embed_Layout

windows-release/stage-layout-full.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
parameters:
22
BuildToPackage: current
33
DoFreethreaded: false
4+
SigningCertificate: ''
45

56
jobs:
67
- job: Make_Layouts
@@ -131,10 +132,10 @@ jobs:
131132
displayName: 'Update TCL_LIBRARY'
132133
condition: and(succeeded(), variables['TclLibrary'])
133134
134-
- powershell: |
135-
copy "$(Pipeline.Workspace)\bin_$(Name)\Activate.ps1" Lib\venv\scripts\common\Activate.ps1 -Force
136-
displayName: 'Copy signed files into sources'
137-
condition: and(succeeded(), variables['SigningCertificate'])
135+
- ${{ if parameters.SigningCertificate }}:
136+
- powershell: |
137+
copy "$(Pipeline.Workspace)\bin_$(Name)\Activate.ps1" Lib\venv\scripts\common\Activate.ps1 -Force
138+
displayName: 'Copy signed files into sources'
138139
139140
- template: ./layout-command.yml
140141
parameters:

windows-release/stage-layout-msix.yml

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
parameters:
22
BuildToPackage: current
3+
SigningCertificate: ''
34

45
jobs:
56
- job: Make_MSIX_Layout
@@ -69,25 +70,24 @@ jobs:
6970
displayName: 'Update TCL_LIBRARY'
7071
condition: and(succeeded(), variables['TclLibrary'])
7172
72-
- task: DownloadPipelineArtifact@2
73-
displayName: 'Download artifact: cert'
74-
condition: and(succeeded(), variables['SigningCertificate'])
75-
inputs:
76-
${{ if eq(parameters.BuildToPackage, 'current') }}:
77-
buildType: current
78-
${{ else }}:
79-
buildType: specific
80-
buildVersionToDownload: specific
81-
project: $(resources.pipeline.build_to_package.projectId)
82-
pipeline: $(resources.pipeline.build_to_package.pipelineId)
83-
runId: $(resources.pipeline.build_to_package.runID)
84-
artifact: cert
85-
targetPath: $(Pipeline.Workspace)\cert
86-
87-
- powershell: |
88-
copy "$(Pipeline.Workspace)\bin_$(Name)\Activate.ps1" Lib\venv\scripts\common\Activate.ps1 -Force
89-
displayName: 'Copy signed files into sources'
90-
condition: and(succeeded(), variables['SigningCertificate'])
73+
- ${{ if parameters.SigningCertificate }}:
74+
- task: DownloadPipelineArtifact@2
75+
displayName: 'Download artifact: cert'
76+
inputs:
77+
${{ if eq(parameters.BuildToPackage, 'current') }}:
78+
buildType: current
79+
${{ else }}:
80+
buildType: specific
81+
buildVersionToDownload: specific
82+
project: $(resources.pipeline.build_to_package.projectId)
83+
pipeline: $(resources.pipeline.build_to_package.pipelineId)
84+
runId: $(resources.pipeline.build_to_package.runID)
85+
artifact: cert
86+
targetPath: $(Pipeline.Workspace)\cert
87+
88+
- powershell: |
89+
copy "$(Pipeline.Workspace)\bin_$(Name)\Activate.ps1" Lib\venv\scripts\common\Activate.ps1 -Force
90+
displayName: 'Copy signed files into sources'
9191
9292
- template: ./layout-command.yml
9393
parameters:
@@ -100,14 +100,14 @@ jobs:
100100
env:
101101
TCL_LIBRARY: $(TclLibrary)
102102
103-
# The dotnet sign tool shouldn't need this, but we do because of the sccd file
104-
- powershell: |
105-
$info = (gc "$(Pipeline.Workspace)\cert\certinfo.json" | ConvertFrom-JSON)
106-
Write-Host "Side-loadable APPX must be signed with '$($info.Subject)'"
107-
Write-Host "##vso[task.setvariable variable=APPX_DATA_PUBLISHER]$($info.Subject)"
108-
Write-Host "##vso[task.setvariable variable=APPX_DATA_SHA256]$($info.SHA256)"
109-
displayName: 'Override signing parameters'
110-
condition: and(succeeded(), variables['SigningCertificate'])
103+
- ${{ if parameters.SigningCertificate }}:
104+
# The dotnet sign tool shouldn't need this, but we do because of the sccd file
105+
- powershell: |
106+
$info = (gc "$(Pipeline.Workspace)\cert\certinfo.json" | ConvertFrom-JSON)
107+
Write-Host "Side-loadable APPX must be signed with '$($info.Subject)'"
108+
Write-Host "##vso[task.setvariable variable=APPX_DATA_PUBLISHER]$($info.Subject)"
109+
Write-Host "##vso[task.setvariable variable=APPX_DATA_SHA256]$($info.SHA256)"
110+
displayName: 'Override signing parameters'
111111
112112
- powershell: |
113113
Remove-Item "$(Build.ArtifactStagingDirectory)\appx" -Recurse -Force -EA 0

windows-release/stage-layout-nuget.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
parameters:
22
BuildToPackage: current
33
DoFreethreaded: false
4+
SigningCertificate: ''
45

56
jobs:
67
- job: Make_Nuget_Layout
@@ -64,10 +65,10 @@ jobs:
6465
artifact: bin_$(Name)
6566
targetPath: $(Pipeline.Workspace)\bin_$(Name)
6667

67-
- powershell: |
68-
copy $(Pipeline.Workspace)\bin_$(Name)\Activate.ps1 Lib\venv\scripts\common\Activate.ps1 -Force
69-
displayName: 'Copy signed files into sources'
70-
condition: and(succeeded(), variables['SigningCertificate'])
68+
- ${{ if parameters.SigningCertificate }}:
69+
- powershell: |
70+
copy $(Pipeline.Workspace)\bin_$(Name)\Activate.ps1 Lib\venv\scripts\common\Activate.ps1 -Force
71+
displayName: 'Copy signed files into sources'
7172
7273
- template: ./layout-command.yml
7374
parameters:

windows-release/stage-layout-pymanager.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ parameters:
33
DoFreethreaded: false
44
DoEmbed: false
55
LayoutScriptBranch: main
6+
SigningCertificate: ''
67

78
jobs:
89
- job: Make_PyManager_Layouts
@@ -175,11 +176,11 @@ jobs:
175176
displayName: 'Update TCL_LIBRARY'
176177
condition: and(succeeded(), variables['TclLibrary'])
177178
178-
- powershell: |
179-
copy "$(Pipeline.Workspace)\bin_$(Name)\Activate.ps1" Lib\venv\scripts\common\Activate.ps1 -Force
180-
displayName: 'Copy signed files into sources'
181-
workingDirectory: $(Build.SourcesDirectory)\cpython
182-
condition: and(succeeded(), variables['SigningCertificate'])
179+
- ${{ if parameters.SigningCertificate }}:
180+
- powershell: |
181+
copy "$(Pipeline.Workspace)\bin_$(Name)\Activate.ps1" Lib\venv\scripts\common\Activate.ps1 -Force
182+
displayName: 'Copy signed files into sources'
183+
workingDirectory: $(Build.SourcesDirectory)\cpython
183184
184185
- template: ./layout-command.yml
185186
parameters:

windows-release/stage-layout-symbols.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ parameters:
1515
- win32_td
1616
- amd64_td
1717
- arm64_td
18+
SigningCertificate: ''
1819

1920

2021
jobs:

windows-release/stage-pack-msix.yml

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
Name: amd64
2626
Artifact: appxstore
2727
Suffix: -store
28-
Upload: true
28+
CreateMsixUpload: true
2929
arm64:
3030
Name: arm64
3131
Artifact: appx
@@ -35,7 +35,7 @@ jobs:
3535
Name: arm64
3636
Artifact: appxstore
3737
Suffix: -store
38-
Upload: true
38+
CreateMsixUpload: true
3939

4040
steps:
4141
- template: ./checkout.yml
@@ -70,26 +70,21 @@ jobs:
7070
- powershell: |
7171
7z a -tzip "$(Build.ArtifactStagingDirectory)\msixupload\$(Filename).msixupload" *
7272
displayName: 'Build msixupload'
73-
condition: and(succeeded(), eq(variables['Upload'], 'true'))
73+
condition: and(succeeded(), eq(variables['CreateMsixUpload'], 'true'))
7474
workingDirectory: $(Build.ArtifactStagingDirectory)\msix
7575
7676
- task: PublishBuildArtifacts@1
7777
displayName: 'Publish Artifact: MSIX'
78-
condition: and(succeeded(), or(ne(variables['ShouldSign'], 'true'), not(variables['SigningCertificate'])))
7978
inputs:
8079
PathtoPublish: '$(Build.ArtifactStagingDirectory)\msix'
81-
ArtifactName: msix
82-
83-
- task: PublishBuildArtifacts@1
84-
displayName: 'Publish Artifact: MSIX'
85-
condition: and(succeeded(), eq(variables['ShouldSign'], 'true'), variables['SigningCertificate'])
86-
inputs:
87-
PathtoPublish: '$(Build.ArtifactStagingDirectory)\msix'
88-
ArtifactName: unsigned_msix
80+
${{ if parameters.SigningCertificate }}:
81+
ArtifactName: unsigned_msix
82+
${{ else }}:
83+
ArtifactName: msix
8984

9085
- task: PublishBuildArtifacts@1
9186
displayName: 'Publish Artifact: MSIXUpload'
92-
condition: and(succeeded(), eq(variables['Upload'], 'true'))
87+
condition: and(succeeded(), eq(variables['CreateMsixUpload'], 'true'))
9388
inputs:
9489
PathtoPublish: '$(Build.ArtifactStagingDirectory)\msixupload'
9590
ArtifactName: msixupload

windows-release/stage-pack-pymanager.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
parameters:
22
DoFreethreaded: false
33
DoEmbed: false
4+
SigningCertificate: ''
45

56
Artifacts:
67
- name: win32

windows-release/stage-test-embed.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
jobs:
22
- job: Test_Embed
33
displayName: Test Embed
4-
condition: and(succeeded(), eq(variables['DoEmbed'], 'true'))
54

65
pool:
76
vmImage: windows-2022

0 commit comments

Comments
 (0)