Skip to content

Commit 0e6400d

Browse files
cd: using AzureSignTool and NuGetSignTool to sign
1 parent b649c06 commit 0e6400d

File tree

3 files changed

+71
-22
lines changed

3 files changed

+71
-22
lines changed

CI/azure-pipelines-build.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ parameters:
1717
displayName: NuGet-Version
1818
type: string
1919
default: '0'
20+
21+
# Required Pipeline Variables for Code Signing:
22+
# - AZURE_KEY_VAULT_URL: Azure Key Vault URL (e.g., https://your-vault.vault.azure.net/)
23+
# - AZURE_KEY_VAULT_APPLICATION_ID: Azure AD Application Client ID
24+
# - AZURE_KEY_VAULT_CLIENT_SECRET: Azure AD Application Client Secret (Pipeline Secret Variable)
25+
# - AZURE_KEY_VAULT_TENANT_ID: Azure AD Tenant ID
26+
# - AZURE_KEY_VAULT_CERTIFICATE_NAME: Name of the certificate in Key Vault
2027
variables:
2128
- group: IronDrawingVersions
2229

@@ -36,6 +43,9 @@ variables:
3643
value: ${{ parameters.inputNuGetVersion }}-prerelease
3744
${{ if eq(parameters.preRelease, false) }}:
3845
value: ${{ parameters.inputNuGetVersion }}
46+
47+
- name: TimestampUrl
48+
value: http://timestamp.digicert.com
3949
# Build Trigger
4050
trigger:
4151
branches:

CI/job_templates/deploy_drawing_libraries.yml

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@ jobs:
77
- job: DeployDrawingLibraries
88
steps:
99
- checkout: none
10-
- task: DownloadSecureFile@1
11-
displayName: Download IronBarCode Code-Signing Cert
12-
name: DownloadSigningCert
13-
inputs:
14-
secureFile: 'ironcert.pfx'
1510
- task: DownloadPipelineArtifact@2
1611
inputs:
1712
buildType: 'current'
@@ -35,14 +30,28 @@ jobs:
3530
buildProperties: 'version=${{ parameters.NuGetVersion }};IncludeSymbols=true;SymbolPackageFormat=snupkg'
3631
includeSymbols: true
3732
# Sign NuGet Packages
38-
- task: NuGetCommand@2
39-
displayName: Sign IronDrawing NuGet Package
33+
- task: DotNetCoreCLI@2
34+
displayName: INSTALL NuGetKeyVaultSignTool
4035
inputs:
41-
command: 'custom'
42-
arguments: >-
43-
sign $(Build.ArtifactStagingDirectory)\IronSoftware.System.Drawing.${{ parameters.NuGetVersion }}.symbols.nupkg
44-
-CertificatePath $(Agent.TempDirectory)\ironcert.pfx
45-
-Timestamper http://timestamp.digicert.com -NonInteractive -CertificatePassword $(CertificatePassword)
36+
command: custom
37+
custom: tool
38+
arguments: install --global NuGetKeyVaultSignTool
39+
- task: PowerShell@2
40+
displayName: Sign IronDrawing NuGet Package with NuGetKeyVaultSignTool
41+
inputs:
42+
targetType: 'inline'
43+
script: |
44+
NuGetKeyVaultSignTool sign "$(Build.ArtifactStagingDirectory)\IronSoftware.System.Drawing.${{ parameters.NuGetVersion }}.symbols.nupkg" `
45+
--azure-key-vault-url "$(AZURE_KEY_VAULT_URL)" `
46+
--azure-key-vault-client-id "$(AZURE_KEY_VAULT_APPLICATION_ID)" `
47+
--azure-key-vault-client-secret "$(AZURE_KEY_VAULT_CLIENT_SECRET)" `
48+
--azure-key-vault-tenant-id "$(AZURE_KEY_VAULT_TENANT_ID)" `
49+
--azure-key-vault-certificate "$(AZURE_KEY_VAULT_CERTIFICATE_NAME)" `
50+
--timestamp-rfc3161 "$(TimestampUrl)" `
51+
--timestamp-digest sha256 `
52+
--file-digest sha256 `
53+
--verbose
54+
4655
- task: NuGetCommand@2
4756
inputs:
4857
command: 'push'
Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,47 @@
11
steps:
2-
- task: CmdLine@2
2+
# Install .NET 8 SDK for AzureSignTool
3+
- task: UseDotNet@2
4+
displayName: INSTALL .NET 8 SDK
5+
inputs:
6+
packageType: sdk
7+
version: 8.x
8+
- task: DotNetCoreCLI@2
9+
displayName: INSTALL AzureSignTool
10+
inputs:
11+
command: custom
12+
custom: tool
13+
arguments: install --global AzureSignTool
14+
- task: PowerShell@2
315
displayName: 'Sign IronSoftware.Drawing.Common.dll .NET6'
416
inputs:
517
workingDirectory: 'bin\$(Configuration)\netstandard2.0'
6-
script: >-
7-
$(Build.SourcesDirectory)\NuGet\signtool.exe sign
8-
/v /d IronDrawing /f $(Agent.TempDirectory)/ironcert.pfx /p $(CertificatePassword)
9-
/t http://timestamp.digicert.com /fd SHA256 "IronSoftware.Drawing.Common.dll"
10-
- task: CmdLine@2
18+
targetType: 'inline'
19+
script: |
20+
azuresigntool sign `
21+
--azure-key-vault-url "$(AZURE_KEY_VAULT_URL)" `
22+
--azure-key-vault-client-id "$(AZURE_KEY_VAULT_APPLICATION_ID)" `
23+
--azure-key-vault-client-secret "$(AZURE_KEY_VAULT_CLIENT_SECRET)" `
24+
--azure-key-vault-tenant-id "$(AZURE_KEY_VAULT_TENANT_ID)" `
25+
--azure-key-vault-certificate "$(AZURE_KEY_VAULT_CERTIFICATE_NAME)" `
26+
--timestamp-rfc3161 "$(TimestampUrl)" `
27+
--timestamp-digest sha256 `
28+
--file-digest sha256 `
29+
--verbose `
30+
"IronSoftware.Drawing.Common.dll"
31+
- task: PowerShell@2
1132
displayName: 'Sign IronSoftware.Drawing.Common.dll .NET6'
1233
inputs:
1334
workingDirectory: 'bin\$(Configuration)\net60'
14-
script: >-
15-
$(Build.SourcesDirectory)\NuGet\signtool.exe sign
16-
/v /d IronDrawing /f $(Agent.TempDirectory)/ironcert.pfx /p $(CertificatePassword)
17-
/t http://timestamp.digicert.com /fd SHA256 "IronSoftware.Drawing.Common.dll"
35+
targetType: 'inline'
36+
script: |
37+
azuresigntool sign `
38+
--azure-key-vault-url "$(AZURE_KEY_VAULT_URL)" `
39+
--azure-key-vault-client-id "$(AZURE_KEY_VAULT_APPLICATION_ID)" `
40+
--azure-key-vault-client-secret "$(AZURE_KEY_VAULT_CLIENT_SECRET)" `
41+
--azure-key-vault-tenant-id "$(AZURE_KEY_VAULT_TENANT_ID)" `
42+
--azure-key-vault-certificate "$(AZURE_KEY_VAULT_CERTIFICATE_NAME)" `
43+
--timestamp-rfc3161 "$(TimestampUrl)" `
44+
--timestamp-digest sha256 `
45+
--file-digest sha256 `
46+
--verbose `
47+
"IronSoftware.Drawing.Common.dll"

0 commit comments

Comments
 (0)