Skip to content

Commit 5f3492f

Browse files
committed
build: switch to ESRP v5, which supports managed identities (#17134)
This required me to push a bunch more parameters through the build pipeline, but it gave me the opportunity to define them as variables that can be set at queue time. (cherry picked from commit 2f52f27) Service-Card-Id: 92577964 Service-Version: 1.20
1 parent b02c11b commit 5f3492f

9 files changed

+65
-9
lines changed

.github/actions/spelling/allow/microsoft.txt

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
ACLs
22
ADMINS
33
advapi
4+
akv
5+
AKV
46
altform
57
altforms
68
appendwttlogging

build/pipelines/ob-nightly.yml

+7
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ extends:
3030
buildTerminal: true
3131
pgoBuildMode: Optimize
3232
codeSign: true
33+
signingIdentity:
34+
serviceName: $(SigningServiceName)
35+
appId: $(SigningAppId)
36+
tenantId: $(SigningTenantId)
37+
akvName: $(SigningAKVName)
38+
authCertName: $(SigningAuthCertName)
39+
signCertName: $(SigningSignCertName)
3340
publishSymbolsToPublic: true
3441
publishVpackToWindows: false
3542
symbolExpiryTime: 15

build/pipelines/ob-release.yml

+7
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ extends:
7878
buildConfigurations: ${{ parameters.buildConfigurations }}
7979
buildPlatforms: ${{ parameters.buildPlatforms }}
8080
codeSign: true
81+
signingIdentity:
82+
serviceName: $(SigningServiceName)
83+
appId: $(SigningAppId)
84+
tenantId: $(SigningTenantId)
85+
akvName: $(SigningAKVName)
86+
authCertName: $(SigningAuthCertName)
87+
signCertName: $(SigningSignCertName)
8188
terminalInternalPackageVersion: ${{ parameters.terminalInternalPackageVersion }}
8289
publishSymbolsToPublic: ${{ parameters.publishSymbolsToPublic }}
8390
publishVpackToWindows: ${{ parameters.publishVpackToWindows }}

build/pipelines/templates-v2/job-build-package-wpf.yml

+10-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ parameters:
2727
- name: publishArtifacts
2828
type: boolean
2929
default: true
30+
- name: signingIdentity
31+
type: object
32+
default: {}
3033

3134
jobs:
3235
- job: ${{ parameters.jobName }}
@@ -97,10 +100,15 @@ jobs:
97100
flattenFolders: true
98101

99102
- ${{ if eq(parameters.codeSign, true) }}:
100-
- task: EsrpCodeSigning@3
103+
- task: EsrpCodeSigning@5
101104
displayName: Submit *.nupkg to ESRP for code signing
102105
inputs:
103-
ConnectedServiceName: 9d6d2960-0793-4d59-943e-78dcb434840a
106+
ConnectedServiceName: ${{ parameters.signingIdentity.serviceName }}
107+
AppRegistrationClientId: ${{ parameters.signingIdentity.appId }}
108+
AppRegistrationTenantId: ${{ parameters.signingIdentity.tenantId }}
109+
AuthAKVName: ${{ parameters.signingIdentity.akvName }}
110+
AuthCertName: ${{ parameters.signingIdentity.authCertName }}
111+
AuthSignCertName: ${{ parameters.signingIdentity.signCertName }}
104112
FolderPath: $(Build.ArtifactStagingDirectory)/nupkg
105113
Pattern: '*.nupkg'
106114
UseMinimatch: true

build/pipelines/templates-v2/job-build-project.yml

+10-2
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ parameters:
6565
- name: removeAllNonSignedFiles
6666
type: boolean
6767
default: false
68+
- name: signingIdentity
69+
type: object
70+
default: {}
6871

6972
jobs:
7073
- job: ${{ parameters.jobName }}
@@ -235,10 +238,15 @@ jobs:
235238

236239
# Code-sign everything we just put together.
237240
# We run the signing in Terminal.BinDir, because all of the signing batches are relative to the final architecture/configuration output folder.
238-
- task: EsrpCodeSigning@3
241+
- task: EsrpCodeSigning@5
239242
displayName: Submit Signing Request
240243
inputs:
241-
ConnectedServiceName: 9d6d2960-0793-4d59-943e-78dcb434840a
244+
ConnectedServiceName: ${{ parameters.signingIdentity.serviceName }}
245+
AppRegistrationClientId: ${{ parameters.signingIdentity.appId }}
246+
AppRegistrationTenantId: ${{ parameters.signingIdentity.tenantId }}
247+
AuthAKVName: ${{ parameters.signingIdentity.akvName }}
248+
AuthCertName: ${{ parameters.signingIdentity.authCertName }}
249+
AuthSignCertName: ${{ parameters.signingIdentity.signCertName }}
242250
FolderPath: '$(Terminal.BinDir)'
243251
signType: batchSigning
244252
batchSignPolicyFile: '$(Build.SourcesDirectory)/ESRPSigningConfig.json'

build/pipelines/templates-v2/job-merge-msix-into-bundle.yml

+10-2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ parameters:
3232
- name: afterBuildSteps
3333
type: stepList
3434
default: []
35+
- name: signingIdentity
36+
type: object
37+
default: {}
3538

3639
jobs:
3740
- job: ${{ parameters.jobName }}
@@ -94,10 +97,15 @@ jobs:
9497
displayName: Create msixbundle
9598
9699
- ${{ if eq(parameters.codeSign, true) }}:
97-
- task: EsrpCodeSigning@3
100+
- task: EsrpCodeSigning@5
98101
displayName: Submit *.msixbundle to ESRP for code signing
99102
inputs:
100-
ConnectedServiceName: 9d6d2960-0793-4d59-943e-78dcb434840a
103+
ConnectedServiceName: ${{ parameters.signingIdentity.serviceName }}
104+
AppRegistrationClientId: ${{ parameters.signingIdentity.appId }}
105+
AppRegistrationTenantId: ${{ parameters.signingIdentity.tenantId }}
106+
AuthAKVName: ${{ parameters.signingIdentity.akvName }}
107+
AuthCertName: ${{ parameters.signingIdentity.authCertName }}
108+
AuthSignCertName: ${{ parameters.signingIdentity.signCertName }}
101109
FolderPath: $(System.ArtifactsDirectory)\bundle
102110
Pattern: $(BundleStemName)*.msixbundle
103111
UseMinimatch: true

build/pipelines/templates-v2/job-package-conpty.yml

+10-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ parameters:
2727
- name: publishArtifacts
2828
type: boolean
2929
default: true
30+
- name: signingIdentity
31+
type: object
32+
default: {}
3033

3134
jobs:
3235
- job: ${{ parameters.jobName }}
@@ -82,10 +85,15 @@ jobs:
8285
versionEnvVar: XES_PACKAGEVERSIONNUMBER
8386

8487
- ${{ if eq(parameters.codeSign, true) }}:
85-
- task: EsrpCodeSigning@3
88+
- task: EsrpCodeSigning@5
8689
displayName: Submit *.nupkg to ESRP for code signing
8790
inputs:
88-
ConnectedServiceName: 9d6d2960-0793-4d59-943e-78dcb434840a
91+
ConnectedServiceName: ${{ parameters.signingIdentity.serviceName }}
92+
AppRegistrationClientId: ${{ parameters.signingIdentity.appId }}
93+
AppRegistrationTenantId: ${{ parameters.signingIdentity.tenantId }}
94+
AuthAKVName: ${{ parameters.signingIdentity.akvName }}
95+
AuthCertName: ${{ parameters.signingIdentity.authCertName }}
96+
AuthSignCertName: ${{ parameters.signingIdentity.signCertName }}
8997
FolderPath: $(Build.ArtifactStagingDirectory)/nupkg
9098
Pattern: '*.nupkg'
9199
UseMinimatch: true

build/pipelines/templates-v2/pipeline-full-release-build.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ parameters:
3333
- arm64
3434
- name: codeSign
3535
type: boolean
36-
default: true
36+
default: false
3737
- name: generateSbom
3838
type: boolean
3939
default: true

build/pipelines/templates-v2/pipeline-onebranch-full-release-build.yml

+8
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ parameters:
6060
- name: extraPublishJobs
6161
type: object
6262
default: []
63+
- name: signingIdentity
64+
type: object
65+
default: {}
6366

6467
resources:
6568
repositories:
@@ -125,6 +128,7 @@ extends:
125128
generateSbom: false # this is handled by onebranch
126129
removeAllNonSignedFiles: true # appease the overlords
127130
codeSign: ${{ parameters.codeSign }}
131+
signingIdentity: ${{ parameters.signingIdentity }}
128132
beforeBuildSteps: # Right before we build, lay down the universal package and localizations
129133
- task: PkgESSetupBuild@12
130134
displayName: Package ES - Setup Build
@@ -161,6 +165,7 @@ extends:
161165
generateSbom: false # this is handled by onebranch
162166
removeAllNonSignedFiles: true # appease the overlords
163167
codeSign: ${{ parameters.codeSign }}
168+
signingIdentity: ${{ parameters.signingIdentity }}
164169
beforeBuildSteps:
165170
- task: PkgESSetupBuild@12
166171
displayName: Package ES - Setup Build
@@ -214,6 +219,7 @@ extends:
214219
buildPlatforms: ${{ parameters.buildPlatforms }}
215220
generateSbom: false # Handled by onebranch
216221
codeSign: ${{ parameters.codeSign }}
222+
signingIdentity: ${{ parameters.signingIdentity }}
217223
afterBuildSteps:
218224
# This directory has to exist, even if we aren't using createvpack, because the Guardian rules demand it.
219225
- pwsh: |-
@@ -241,6 +247,7 @@ extends:
241247
buildPlatforms: ${{ parameters.buildPlatforms }}
242248
generateSbom: false # this is handled by onebranch
243249
codeSign: ${{ parameters.codeSign }}
250+
signingIdentity: ${{ parameters.signingIdentity }}
244251

245252
- ${{ if eq(parameters.buildWPF, true) }}:
246253
- template: ./build/pipelines/templates-v2/job-build-package-wpf.yml@self
@@ -258,6 +265,7 @@ extends:
258265
buildPlatforms: ${{ parameters.buildPlatforms }}
259266
generateSbom: false # this is handled by onebranch
260267
codeSign: ${{ parameters.codeSign }}
268+
signingIdentity: ${{ parameters.signingIdentity }}
261269

262270
- stage: Publish
263271
displayName: Publish

0 commit comments

Comments
 (0)