Skip to content

Commit 4a903c4

Browse files
sign vsix in build pipeline (#1499)
1 parent 1f602c3 commit 4a903c4

File tree

2 files changed

+71
-5
lines changed

2 files changed

+71
-5
lines changed

.azure-pipelines/nightly.yml

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ extends:
8383
inputs:
8484
script: npx json@9.0.6 -I -f package.json -e "this.aiKey=\"%AI_KEY%\""
8585
- task: CmdLine@2
86-
displayName: vsce package --pre-release
86+
displayName: vsce package --pre-release -o extension.vsix
8787
inputs:
88-
script: npx @vscode/vsce@latest package --pre-release
88+
script: npx @vscode/vsce@latest package --pre-release -o extension.vsix
8989
### Copy files for APIScan
9090
- task: CopyFiles@2
9191
displayName: "Copy Files for APIScan"
@@ -105,8 +105,41 @@ extends:
105105
condition: and(succeeded(), ne(variables['DisableAPIScan'], 'true'))
106106
env:
107107
AzureServicesAuthConnectionString: runAs=App;AppId=$(ApiScanClientId);TenantId=$(ApiScanTenant);AppKey=$(ApiScanSecret)
108+
- script: npx @vscode/vsce@latest generate-manifest -i extension.vsix -o extension.manifest
109+
displayName: 'Generate extension manifest'
110+
- script: cp extension.manifest extension.signature.p7s
111+
displayName: 'Prepare manifest for signing'
112+
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@5
113+
inputs:
114+
ConnectedServiceName: $(ConnectedServiceName)
115+
AppRegistrationClientId: $(AppRegistrationClientId)
116+
AppRegistrationTenantId: $(AppRegistrationTenantId)
117+
AuthAKVName: $(AuthAKVName)
118+
AuthCertName: $(AuthCertName)
119+
AuthSignCertName: $(AuthSignCertName)
120+
FolderPath: '.'
121+
Pattern: 'extension.signature.p7s'
122+
signConfigType: inlineSignParams
123+
inlineOperation: |
124+
[
125+
{
126+
"keyCode": "CP-401405",
127+
"operationSetCode": "VSCodePublisherSign",
128+
"parameters" : [],
129+
"toolName": "sign",
130+
"toolVersion": "1.0"
131+
}
132+
]
133+
SessionTimeout: 90
134+
MaxConcurrency: 25
135+
MaxRetryAttempts: 5
136+
PendingAnalysisWaitTimeoutMinutes: 5
137+
displayName: 'Sign extension'
108138
- task: CopyFiles@2
109139
displayName: "Copy Files to: $(Build.ArtifactStagingDirectory)/vsix"
110140
inputs:
111-
Contents: "*.vsix"
141+
Contents: |
142+
extension.vsix
143+
extension.manifest
144+
extension.signature.p7s
112145
TargetFolder: $(Build.ArtifactStagingDirectory)/vsix

.azure-pipelines/rc.yml

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ extends:
7676
- task: CmdLine@2
7777
displayName: vsce package
7878
inputs:
79-
script: npx @vscode/vsce@latest package
79+
script: npx @vscode/vsce@latest package -o extension.vsix
8080
### Copy files for APIScan
8181
- task: CopyFiles@2
8282
displayName: "Copy Files for APIScan"
@@ -96,8 +96,41 @@ extends:
9696
condition: and(succeeded(), ne(variables['DisableAPIScan'], 'true'))
9797
env:
9898
AzureServicesAuthConnectionString: runAs=App;AppId=$(ApiScanClientId);TenantId=$(ApiScanTenant);AppKey=$(ApiScanSecret)
99+
- script: npx @vscode/vsce@latest generate-manifest -i extension.vsix -o extension.manifest
100+
displayName: 'Generate extension manifest'
101+
- script: cp extension.manifest extension.signature.p7s
102+
displayName: 'Prepare manifest for signing'
103+
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@5
104+
inputs:
105+
ConnectedServiceName: $(ConnectedServiceName)
106+
AppRegistrationClientId: $(AppRegistrationClientId)
107+
AppRegistrationTenantId: $(AppRegistrationTenantId)
108+
AuthAKVName: $(AuthAKVName)
109+
AuthCertName: $(AuthCertName)
110+
AuthSignCertName: $(AuthSignCertName)
111+
FolderPath: '.'
112+
Pattern: 'extension.signature.p7s'
113+
signConfigType: inlineSignParams
114+
inlineOperation: |
115+
[
116+
{
117+
"keyCode": "CP-401405",
118+
"operationSetCode": "VSCodePublisherSign",
119+
"parameters" : [],
120+
"toolName": "sign",
121+
"toolVersion": "1.0"
122+
}
123+
]
124+
SessionTimeout: 90
125+
MaxConcurrency: 25
126+
MaxRetryAttempts: 5
127+
PendingAnalysisWaitTimeoutMinutes: 5
128+
displayName: 'Sign extension'
99129
- task: CopyFiles@2
100130
displayName: "Copy Files to: $(Build.ArtifactStagingDirectory)/vsix"
101131
inputs:
102-
Contents: "*.vsix"
132+
Contents: |
133+
extension.vsix
134+
extension.manifest
135+
extension.signature.p7s
103136
TargetFolder: $(Build.ArtifactStagingDirectory)/vsix

0 commit comments

Comments
 (0)