11parameters :
22 Include : ' *'
33 Exclude : ' '
4+ Filter : ' '
45 WorkingDir : ' $(Build.BinariesDirectory)'
56 ExtractDir : ' '
67 SigningCertificate : ' '
@@ -9,32 +10,13 @@ parameters:
910steps :
1011- ${{ if parameters.SigningCertificate }} :
1112 - powershell : |
12- cd (mkdir -Force _signing)
13- iwr https://aka.ms/nugetclidl -o nuget.exe
14- .\nuget.exe install Microsoft.Windows.SDK.BuildTools -x -o .
15- .\nuget.exe install Microsoft.Trusted.Signing.Client -x -o .
16- $md = @{
17- Endpoint='$(TrustedSigningUri)';
18- CodeSigningAccountName='$(TrustedSigningAccount)';
19- CertificateProfileName='$(TrustedSigningCertificateName)';
20- CorrelationId='$(SigningDescription)';
21- ExcludeEnvironmentCredential=$false;
22- ExcludeManagedIdentityCredential=$true;
23- ExcludeSharedTokenCacheCredential=$true;
24- ExcludeVisualStudioCredential=$true;
25- ExcludeVisualStudioCodeCredential=$true;
26- ExcludeAzureCliCredential=$true;
27- ExcludeAzurePowershellCredential=$true;
28- ExcludeInteractiveBrowserCredential=$true;
29- };
30- # ConvertTo-Json $md | Out-File -Encoding UTF8 .\metadata.json
31- # but without including the BOM...
32- [System.IO.File]::WriteAllText("$(Get-Location)\metadata.json", (ConvertTo-Json $md), [System.Text.UTF8Encoding]::new($false))
13+ dotnet tool install --global --prerelease sign
14+ $signtool = (gcm sign).Source
15+ $signargs = 'code trusted-signing -v Information ' + `
16+ '-fd sha256 -t http://timestamp.acs.microsoft.com -td sha256 ' + `
17+ '-tse "$(TrustedSigningUri)" -tsa "$(TrustedSigningAccount)" -tscp "$(TrustedSigningCertificateName)" ' + `
18+ '-d "$(SigningDescription)" '
3319
34- $signtool = dir .\Microsoft.Windows.SDK.BuildTools\*\*\x64\signtool.exe | select -First 1
35- $dlib = dir .\Microsoft.Trusted.Signing.Client\*\x64\Azure.CodeSigning.Dlib.dll | select -First 1
36- $signargs = "sign /v /fd sha256 /tr http://timestamp.acs.microsoft.com /td sha256 " + `
37- "/dlib ""$dlib"" /dmdf ""$(gi metadata.json)"""
3820 Write-Host "##vso[task.setvariable variable=__TrustedSigningCmd]$signtool"
3921 Write-Host "##vso[task.setvariable variable=__TrustedSigningArgs]$signargs"
4022 if ($env:EXPORT_COMMAND) {
@@ -53,7 +35,13 @@ steps:
5335 } else {
5436 $files = (dir ${{ parameters.Include }} -File)
5537 }
56- & $env:TRUSTED_SIGNING_CMD @(-split $env:TRUSTED_SIGNING_ARGS) $files
38+ if ($env:FILTER) {
39+ ($env:FILTER -split ';') -join "`n" | Out-File __filelist.txt -Encoding utf8
40+ & $env:TRUSTED_SIGNING_CMD @(-split $env:TRUSTED_SIGNING_ARGS) -fl __filelist.txt $files
41+ del __filelist.txt
42+ } else {
43+ & $env:TRUSTED_SIGNING_CMD @(-split $env:TRUSTED_SIGNING_ARGS) $files
44+ }
5745 displayName: 'Sign binaries'
5846 retryCountOnTaskFailure: 3
5947 workingDirectory: ${{ parameters.WorkingDir }}
6351 AZURE_TENANT_ID: $(TrustedSigningTenantId)
6452 AZURE_CLIENT_ID: $(TrustedSigningClientId)
6553 AZURE_CLIENT_SECRET: $(TrustedSigningSecret)
54+ ${{ if parameters.Filter }}:
55+ FILTER: ${{ parameters.Filter }}
6656
6757
6858 - ${{ if parameters.ExtractDir }} :
0 commit comments