trigger: - master resources: repositories: - repository: onebranchTemplates type: git name: OneBranch.Pipelines/GovernedTemplates ref: refs/heads/main variables: - name: WindowsContainerImage value: onebranch.azurecr.io/windows/ltsc2019/vse2022:latest - name: GDN_CODESIGN_TARGETDIRECTORY value: '$(Build.ArtifactStagingDirectory)\ONEBRANCH_ARTIFACT' extends: template: v2/OneBranch.Official.CrossPlat.yml@onebranchTemplates parameters: featureFlags: WindowsHostVersion: Network: KS3 globalSdl: enabled: true stages: - stage: stage jobs: - job: job pool: type: windows variables: - name: ob_nugetPublishing_enabled value: true - name: ob_outputDirectory value: '$(Build.ArtifactStagingDirectory)/ONEBRANCH_ARTIFACT' - name: ob_git_fetchDepth value: 0 steps: - task: NuGetCommand@2 displayName: 'NuGet restore' inputs: restoreSolution: '$(Build.SourcesDirectory)\Forge.sln' feedsToUse: config nugetConfigPath: '$(Build.SourcesDirectory)/nuget.config' - task: VSBuild@1 displayName: 'Build .NET sln for tests' inputs: solution: '$(Build.SourcesDirectory)\Forge.sln' platform: 'Any CPU' configuration: Release - task: VSTest@2 displayName: 'Run Tests' inputs: testAssemblyVer2: | $(Build.SourcesDirectory)\Forge.TreeWalker.UnitTests\obj\Release\Microsoft.Forge.TreeWalker.UnitTests.dll runInParallel: True - task: VSBuild@1 displayName: 'Build .NET sln and pack' inputs: solution: '$(Build.SourcesDirectory)\Forge.sln' platform: 'Any CPU' configuration: Release msbuildArgs: '-t:pack' - task: UseDotNet@2 displayName: 'Use .NET 6.0 SDK' inputs: packageType: 'sdk' version: '6.0.100' - task: UseDotNet@2 displayName: 'Use .NET 2.1 runtime' inputs: packageType: 'runtime' version: '2.1.23' - task: EsrpCodeSigning@5 displayName: 'ESRP CodeSigning - Authenticode MI' inputs: ConnectedServiceName: 'ForgeManagedIdentity' UseMSIAuthentication: true AppRegistrationClientId: 'ee5bddcd-7e6d-40c7-a645-8f0be9da4e24' AppRegistrationTenantId: '33e01921-4d64-4f8c-a055-5bdaffd5e33d' EsrpClientId: 'ec6597cc-b900-43a4-9d2b-ffc5cc4f8c56' AuthAKVName: 'ForgeKeyVault2' AuthSignCertName: 'ForgeKeyVault2Certificate' ServiceEndpointUrl: 'https://api.esrp.microsoft.com/api/v2' signConfigType: 'inlineSignParams' FolderPath: '$(Build.SourcesDirectory)\Forge.TreeWalker\bin\Release' Pattern: 'Microsoft.Forge.TreeWalker.dll' OpusName: 'Microsoft Forge TreeWalker' OpusInfo: 'https://www.github.com/microsoft/forge' inlineOperation: | [ { "keyCode": "CP-230012", "operationSetCode": "SigntoolSign", "parameters": [ { "parameterName": "OpusName", "parameterValue": "Microsoft" }, { "parameterName": "OpusInfo", "parameterValue": "http://www.microsoft.com" }, { "parameterName": "Append", "parameterValue": "/as" }, { "parameterName": "FileDigest", "parameterValue": "/fd \"SHA256\"" }, { "parameterName": "PageHash", "parameterValue": "/NPH" }, { "parameterName": "TimeStamp", "parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256" } ], "toolName": "sign", "toolVersion": "1.0" }, { "keyCode": "CP-230012", "operationSetCode": "SigntoolVerify", "parameters": [], "toolName": "sign", "toolVersion": "1.0" } ] - task: EsrpCodeSigning@5 displayName: 'ESRP CodeSigning - NuGet MI' inputs: ConnectedServiceName: 'ForgeManagedIdentity' UseMSIAuthentication: true AppRegistrationClientId: 'ee5bddcd-7e6d-40c7-a645-8f0be9da4e24' AppRegistrationTenantId: '33e01921-4d64-4f8c-a055-5bdaffd5e33d' EsrpClientId: 'ec6597cc-b900-43a4-9d2b-ffc5cc4f8c56' AuthAKVName: 'ForgeKeyVault2' AuthSignCertName: 'ForgeKeyVault2Certificate' ServiceEndpointUrl: 'https://api.esrp.microsoft.com/api/v2' signConfigType: 'inlineSignParams' FolderPath: '$(Build.SourcesDirectory)\Forge.TreeWalker\bin\Release' Pattern: 'Microsoft.Forge.TreeWalker*.symbols.nupkg' inlineOperation: | [ { "keyCode": "CP-401405", "operationSetCode": "NuGetSign", "parameters": [], "toolName": "sign", "toolVersion": "1.0" }, { "keyCode": "CP-401405", "operationSetCode": "NuGetVerify", "parameters": [], "toolName": "sign", "toolVersion": "1.0" } ] SessionTimeout: '60' MaxConcurrency: '50' MaxRetryAttempts: '5' - task: NuGetCommand@2 displayName: 'NuGet push AzureArtifacts' inputs: command: push packagesToPush: '$(Build.SourcesDirectory)\Forge.TreeWalker\bin\Release\Microsoft.Forge.TreeWalker*.symbols.nupkg' publishVstsFeed: 'One/ForgeArtifacts' allowPackageConflicts: true