From 9472d0d7da4c2d3c54098234b5219bd8be80d9b7 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 15 May 2024 20:52:59 +0100 Subject: [PATCH 1/4] Enable code signing with Azure Trusted Signing --- azure-pipelines.yml | 85 ++++++++++++++++++++++++++++++++++++------ src/IndentGuide.csproj | 1 - 2 files changed, 74 insertions(+), 12 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 80bd83f..7e12364 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,7 +1,8 @@ -# .NET Desktop -# Build and run tests for .NET Desktop or Windows classic desktop solutions. -# Add steps that publish symbols, save build artifacts, and more: -# https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net +parameters: +- name: Sign + displayName: Sign + type: boolean + default: false trigger: - master @@ -10,9 +11,20 @@ pool: vmImage: 'windows-2022' variables: - solution: 'src/IndentGuide.sln' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' +- ${{ if eq(parameters.Sign, 'true') }}: + - group: IndentGuideSigning +- name: solution + value: 'src/IndentGuide.sln' +- name: buildPlatform + value: 'Any CPU' +- name: buildConfiguration + value: 'Release' +- name: IntermediateOutputPath + value: '$(Build.BinariesDirectory)\obj' +- name: OutputPath + value: '$(Build.BinariesDirectory)\bin' +- name: Drop + value: '$(Build.ArtifactStagingDirectory)\drop' steps: - task: NuGetToolInstaller@0 @@ -26,6 +38,50 @@ steps: solution: '$(solution)' platform: '$(buildPlatform)' configuration: '$(buildConfiguration)' + msbuildArgs: '/p:CreateVsixContainer=false' + +- ${{ if eq(parameters.Sign, 'true') }}: + - task: TrustedSigning@0 + displayName: Sign with Trusted Signing + inputs: + AzureTenantID: '$(Sign.AzureTenantID)' + AzureClientID: '$(Sign.AzureClientID)' + AzureClientSecret: '$(Sign.AzureClientSecret)' + Endpoint: '$(Sign.EndPoint)' + CodeSigningAccountName: '$(Sign.CodeSigningAccountName)' + CertificateProfileName: '$(Sign.CertificateProfileName)' + FilesFolder: '$(IntermediateOutputPath)' + FilesFolderFilter: 'dll' + FilesFolderRecurse: true + FilesFolderDepth: 2 + FileDigest: 'SHA256' + TimestampRfc3161: 'http://timestamp.acs.microsoft.com' + TimestampDigest: 'SHA256' + +- task: VSBuild@1 + inputs: + solution: '$(solution)' + platform: '$(buildPlatform)' + configuration: '$(buildConfiguration)' + msbuildArgs: '/t:CreateVsixContainer /p:OutDir="$(OutputPath)"' + +- ${{ if eq(parameters.Sign, 'true') }}: + - task: TrustedSigning@0 + displayName: Sign with Trusted Signing + inputs: + AzureTenantID: '$(Sign.AzureTenantID)' + AzureClientID: '$(Sign.AzureClientID)' + AzureClientSecret: '$(Sign.AzureClientSecret)' + Endpoint: '$(Sign.EndPoint)' + CodeSigningAccountName: '$(Sign.CodeSigningAccountName)' + CertificateProfileName: '$(Sign.CertificateProfileName)' + FilesFolder: '$(OutputPath)' + FilesFolderFilter: 'vsix' + FilesFolderRecurse: true + FilesFolderDepth: 2 + FileDigest: 'SHA256' + TimestampRfc3161: 'http://timestamp.acs.microsoft.com' + TimestampDigest: 'SHA256' - task: VisualStudioTestPlatformInstaller@1 inputs: @@ -38,7 +94,14 @@ steps: configuration: '$(buildConfiguration)' vsTestVersion: 'toolsInstaller' -- task: PublishPipelineArtifact@0 - inputs: - artifactName: 'bin' - targetPath: 'src/bin' +- powershell: | + copy "$(OutputPath)\*.vsix" (mkdir "$(Drop)" -Force) + displayName: 'Copy VSIX to drop' + +- publish: $(Drop) + artifactName: drop + displayName: 'Publish drop' + +- publish: $(OutputDir) + artifactName: bin + displayName: 'Publish bin' diff --git a/src/IndentGuide.csproj b/src/IndentGuide.csproj index 6c9bfcd..682b757 100644 --- a/src/IndentGuide.csproj +++ b/src/IndentGuide.csproj @@ -289,7 +289,6 @@ -