trigger: none
pr: none
pool:
vmImage: 'ubuntu-latest'
variables:
buildConfiguration: 'Release'
folderPath: '$(Build.SourcesDirectory)'
appRegistrationTenantId: 'cdc5aeea-15c5-4db6-b079-fcadd2505dc2'
authenticodeSignId: '2d5c4ab9-0b7e-4f60-bb92-70322df77b94'
nugetSignId: 'a94a770a-9a7b-4888-a3ea-24584b851e49'
stages:
- stage: Build_Test_Lint
jobs:
- job: BuildTestLint
displayName: 'Build, Test, and Lint'
steps:
- checkout: self
- task: UseDotNet@2
displayName: 'Use .NET 9'
inputs:
packageType: 'sdk'
version: '9.0.x'
- script: dotnet restore
displayName: 'Restore'
- script: dotnet build --no-restore --configuration $(buildConfiguration)
displayName: 'Build'
- script: dotnet test --no-restore --verbosity normal --logger trx --configuration $(buildConfiguration)
displayName: 'Test'
- stage: Publish
dependsOn: Build_Test_Lint
jobs:
- job: SignPackPush
displayName: 'Sign DLLs, Pack, Sign NuGet, and Publish'
steps:
- checkout: self
- task: UseDotNet@2
displayName: 'Use .NET 9'
inputs:
packageType: 'sdk'
version: '9.0.x'
- task: EsrpCodeSigning@5
displayName: "Authenticode Sign DLLs"
inputs:
ConnectedServiceName: 'TeamsESRP-CP-230012'
AppRegistrationTenantId: '$(appRegistrationTenantId)'
AppRegistrationClientId: '$(authenticodeSignId)'
AuthSignCertName: '$(authenticodeSignId)'
EsrpClientId: '$(authenticodeSignId)'
AuthAKVName: esrp-teams
UseMSIAuthentication: true
FolderPath: '$(folderPath)'
Pattern: Libraries/**/*.dll
UseMinimatch: true
signConfigType: 'inlineSignParams'
inlineOperation: |
[
{
"KeyCode": "CP-230012",
"OperationCode": "SigntoolSign",
"Parameters": {
"OpusName": "Microsoft",
"OpusInfo": "http://www.microsoft.com",
"FileDigest": "/fd \"SHA256\"",
"PageHash": "/NPH",
"TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
},
"ToolName": "sign",
"ToolVersion": "1.0"
},
{
"KeyCode": "CP-230012",
"OperationCode": "SigntoolVerify",
"Parameters": {},
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
SessionTimeout: '60'
MaxConcurrency: '50'
MaxRetryAttempts: '5'
- task: DotNetCoreCLI@2
displayName: 'Pack NuGet Packages'
inputs:
command: pack
packagesToPack: 'Libraries/**/*.csproj'
packDestination: '$(Build.ArtifactStagingDirectory)'
includeSymbols: true
nobuild: true
configuration: '$(buildConfiguration)'
- task: EsrpCodeSigning@5
displayName: 'Sign NuGet Packages'
inputs:
ConnectedServiceName: 'TeamsESRP-CP-401405'
AppRegistrationTenantId: '$(appRegistrationTenantId)'
AppRegistrationClientId: '$(nugetSignId)'
AuthSignCertName: '$(nugetSignId)'
EsrpClientId: '$(nugetSignId)'
AuthAKVName: esrp-teams
UseMSIAuthentication: true
FolderPath: '$(Build.ArtifactStagingDirectory)'
Pattern: 'Libraries/**/*.nupkg'
UseMinimatch: true
signConfigType: 'inlineSignParams'
inlineOperation: |
[
{
"KeyCode": "CP-401405",
"OperationCode": "NuGetSign",
"ToolName": "sign",
"ToolVersion": "1.0",
"Parameters": {}
},
{
"KeyCode": "CP-401405",
"OperationCode": "NuGetVerify",
"Parameters": {},
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
SessionTimeout: '20'
MaxConcurrency: '50'
MaxRetryAttempts: '5'
PendingAnalysisWaitTimeoutMinutes: '5'
- task: PublishBuildArtifacts@1
displayName: 'Publish NuGet Artifacts'
inputs:
PathToPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'Packages'
- task: NuGetAuthenticate@1
displayName: 'Authenticate with GitHub NuGet'
- task: NuGetCommand@2
displayName: 'Push to GitHub and Azure Feeds'
inputs:
command: push
publishVstsFeed: 'Github_Pipelines/Teams'
allowPackageConflicts: true
includeNugetOrg: truemicrosoft/teams.net
Publicmirrored fromhttps://github.com/microsoft/teams.netAvailable
.github/ado-publish.yml
154lines · modepreview