| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- trigger:
- branches:
- include:
- - main
- - rel/*
- paths:
- include:
- - AsyncRx.NET/*
- - .editorconfig
- - azure-pipelines.asyncrx.yml
- pr:
- branches:
- include:
- - main
- - rel/*
- paths:
- include:
- - AsyncRx.NET/*
- - .editorconfig
- - azure-pipelines.asyncrx.yml
- stages:
- - stage: Build
- jobs:
- - job: Build
- pool:
- vmImage: windows-latest
- variables:
- BuildConfiguration: Release
- BuildPlatform: Any CPU
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
- steps:
- - task: UseDotNet@2
- displayName: Use .NET Core 7.0.x SDK
- inputs:
- version: 7.0.x
- performMultiLevelLookup: true
- - task: DotNetCoreCLI@2
- inputs:
- command: custom
- custom: tool
- arguments: install --tool-path . nbgv
- displayName: Install NBGV tool
- - script: nbgv cloud -a -p AsyncRx.NET
- displayName: Set Version
- - task: MSBuild@1
- displayName: Build AsyncRx.NET.sln
- inputs:
- solution: AsyncRx.NET/AsyncRx.NET.sln
- msbuildArguments: /restore /t:build /p:CreatePackage=true /p:NoPackageAnalysis=true /p:PackageOutputPath=$(Build.ArtifactStagingDirectory)\artifacts
- configuration: $(BuildConfiguration)
- maximumCpuCount: false
- - task: DotNetCoreCLI@2
- inputs:
- command: custom
- custom: tool
- arguments: install --tool-path . dotnet-reportgenerator-globaltool
- displayName: Install ReportGenerator tool
- # Normally we'd run tests here, but AsyncRx.NET doesn't have any yet!
- # Once we're ready to stablize, we'd also add API surface area tests too
-
- - publish: AsyncRx.NET/build
- artifact: config
- displayName: Publish signing config
- - publish: $(Build.ArtifactStagingDirectory)\artifacts
- displayName: Publish artifacts
- artifact: BuildPackages
- # Rx.NET has an IntegrationTests stage. Consider this once we have tests
- - stage: CodeSign
- # In Rx, the condition includes:
- # succeeded('IntegrationTests')
- condition: not(eq(variables['build.reason'], 'PullRequest'))
- jobs:
- - deployment: CodeSign
- displayName: Code Signing
- pool:
- vmImage: windows-latest
- environment: Code Sign
- variables:
- - group: SignClient Credentials
- strategy:
- runOnce:
- deploy:
- steps:
- - task: UseDotNet@2
- displayName: Use .NET 8.0.x SDK
- inputs:
- version: 8.0.x
- performMultiLevelLookup: true
- - task: DotNetCoreCLI@2
- displayName: Install SignTool tool
- inputs:
- command: custom
- custom: tool
- arguments: install --tool-path . sign --version 0.9.1-beta.24406.1
- - task: AzureCLI@2
- inputs:
- azureSubscription: 'Rx.NET Sign Service Connection'
- scriptType: pscore
- scriptLocation: inlineScript
- inlineScript: |
- .\sign code azure-key-vault `
- "**/*.nupkg" `
- --base-directory "$(Pipeline.Workspace)\BuildPackages" `
- --publisher-name "Reactive Extensions for .NET (.NET Foundation)" `
- --description "AsyncRx.NET" `
- --description-url "https://github.com/dotnet/reactive" `
- --azure-key-vault-url "$(SignKeyVaultUrl)" `
- --azure-key-vault-certificate "$(SignKeyVaultCertificateName)"
- displayName: Sign packages
- - publish: $(Pipeline.Workspace)/BuildPackages
- displayName: Publish Signed Packages
- artifact: SignedPackages
|