| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295 | 
							- trigger:
 
-   branches:
 
-     include:
 
-       - main
 
-       - rel/*
 
-   paths:
 
-     include:
 
-       - Rx.NET/Source/*
 
-       - .editorconfig
 
-       - azure-pipelines.rx.yml
 
- pr:
 
-   branches:
 
-     include:
 
-     - main
 
-     - rel/*
 
-   paths:
 
-     include:
 
-       - Rx.NET/Source/*
 
-       - .editorconfig
 
-       - azure-pipelines.rx.yml
 
- stages:
 
- - stage: Build
 
-   jobs:
 
-   - job: Build
 
-     pool: vs2019-preview
 
-     variables:
 
-       BuildConfiguration: Release
 
-       BuildPlatform: Any CPU
 
-       DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
 
-     steps:
 
-     - task: UseDotNet@2
 
-       displayName: Use .NET Core 5.0.x SDK
 
-       inputs:
 
-         version: 5.0.x
 
-         includePreviewVersions: true
 
-         performMultiLevelLookup: true
 
-     - task: DotNetCoreCLI@2
 
-       inputs:
 
-         command: custom
 
-         custom: tool
 
-         arguments: install --tool-path . nbgv
 
-       displayName: Install NBGV tool
 
-     - script: nbgv cloud -a -p Rx.NET/Source
 
-       displayName: Set Version
 
-     - task: MSBuild@1
 
-       displayName: Build System.Reactive.sln
 
-       inputs:
 
-         solution: Rx.NET/Source/System.Reactive.sln
 
-         msbuildArguments: /restore /t:build /p:CreatePackage=true /p:NoPackageAnalysis=true /p:PackageOutputPath=$(Build.ArtifactStagingDirectory)\artifacts
 
-         configuration: $(BuildConfiguration)
 
-         maximumCpuCount: false
 
-     - task: NuGetCommand@2
 
-       displayName: Pack compatibility package
 
-       inputs:
 
-         command: custom
 
-         arguments: pack Rx.NET/Source/facades/System.Reactive.Compatibility.nuspec -Version $(NBGV_NuGetPackageVersion) -MinClientVersion 2.12 -NoPackageAnalysis -outputdirectory $(Build.ArtifactStagingDirectory)\artifacts
 
-     - task: DotNetCoreCLI@2
 
-       inputs:
 
-         command: custom
 
-         custom: tool
 
-         arguments: install --tool-path . dotnet-reportgenerator-globaltool
 
-       displayName: Install ReportGenerator tool
 
-     - task: DotNetCoreCLI@2
 
-       inputs:
 
-         command: test
 
-         projects: Rx.NET/Source/tests/Tests.System.Reactive/*.csproj
 
-         arguments: -c $(BuildConfiguration) --filter "SkipCI!=true" --settings Rx.NET/Source/CodeCoverage.runsettings --collect:"XPlat Code Coverage" -- RunConfiguration.DisableAppDomain=true
 
-       displayName: Run Unit Tests
 
-     - task: DotNetCoreCLI@2
 
-       inputs:
 
-         command: test
 
-         projects: Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Tests.System.Reactive.ApiApprovals.csproj
 
-         arguments: -c $(BuildConfiguration) 
 
-       displayName: Run Api Approvals Tests
 
-     - script: reportgenerator -reports:$(Agent.TempDirectory)/**/coverage.cobertura.xml -targetdir:$(Build.SourcesDirectory)/Rx.NET/Source/coverlet/reports -reporttypes:"Cobertura"
 
-       displayName: Create reports
 
-     - task: PublishCodeCoverageResults@1
 
-       displayName: 'Publish code coverage'
 
-       inputs:
 
-         codeCoverageTool: Cobertura
 
-         summaryFileLocation: $(Build.SourcesDirectory)/Rx.NET/Source/coverlet/reports/Cobertura.xml
 
-     - publish:  Rx.NET/Source/build
 
-       artifact: config
 
-       displayName: Publish signing config
 
-     - publish: $(Build.ArtifactStagingDirectory)\artifacts
 
-       displayName: Publish artifacts
 
-       artifact: BuildPackages
 
-     
 
-     - publish: Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Api
 
-       displayName: Publish test artifiacts
 
-       artifact: ApprovalsTests
 
-       condition: always()
 
- - stage: IntegrationTests
 
-   jobs:
 
-   - job: Linux
 
-     pool:
 
-       vmImage: ubuntu-latest
 
-     variables:
 
-       BuildConfiguration: Release
 
-       BuildPlatform: Any CPU
 
-       DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
 
-     steps:
 
-     - task: UseDotNet@2
 
-       inputs:
 
-         version: 5.0.x
 
-         includePreviewVersions: true
 
-     - task: UseDotNet@2
 
-       inputs:
 
-         version: '3.1.x'
 
-         packageType: runtime
 
-     - task: UseDotNet@2
 
-       inputs:
 
-         version: '2.2.x'
 
-         packageType: runtime
 
-     - task: DotNetCoreCLI@2
 
-       inputs:
 
-         command: custom
 
-         custom: tool
 
-         arguments: install --tool-path . nbgv
 
-       displayName: Install NBGV tool
 
-     - script: ./nbgv cloud -a -p Rx.NET/Source
 
-       displayName: Set Version
 
-     - task: DownloadPipelineArtifact@2
 
-       displayName: Download Build Artifacts
 
-       inputs:
 
-         artifactName: BuildPackages
 
-         targetPath: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LocalPackages
 
-     - task: DotNetCoreCLI@2
 
-       displayName: Update Rx
 
-       inputs:
 
-         command: custom
 
-         projects: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LinuxTests/LinuxTests.csproj
 
-         custom: add
 
-         arguments: package System.Reactive -v $(NBGV_NuGetPackageVersion) -s $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LocalPackages
 
-     - task: DotNetCoreCLI@2
 
-       displayName: Update Aliases
 
-       inputs:
 
-         command: custom
 
-         projects: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LinuxTests/LinuxTests.csproj
 
-         custom: add
 
-         arguments: package System.Reactive.Observable.Aliases -v $(NBGV_NuGetPackageVersion) -s $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LocalPackages
 
-     - task: DotNetCoreCLI@2
 
-       displayName: Update Testing
 
-       inputs:
 
-         command: custom
 
-         projects: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LinuxTests/LinuxTests.csproj
 
-         custom: add
 
-         arguments: package Microsoft.Reactive.Testing -v $(NBGV_NuGetPackageVersion) -s $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LocalPackages
 
-     - task: DotNetCoreCLI@2
 
-       inputs:
 
-         command: test
 
-         projects: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LinuxTests/LinuxTests.csproj
 
-         arguments: -c $(BuildConfiguration) -f net5.0 --filter "SkipCI!=true"
 
-       displayName: Run 5.0 Tests on Linux
 
-     - task: DotNetCoreCLI@2
 
-       inputs:
 
-         command: test
 
-         projects: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LinuxTests/LinuxTests.csproj
 
-         arguments: -c $(BuildConfiguration) -f netcoreapp3.1 --filter "SkipCI!=true"
 
-       displayName: Run 3.1 Tests on Linux
 
-     - task: DotNetCoreCLI@2
 
-       inputs:
 
-         command: test
 
-         projects: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LinuxTests/LinuxTests.csproj
 
-         arguments: -c $(BuildConfiguration) -f netcoreapp2.1 --filter "SkipCI!=true" 
 
-       displayName: Run 2.1 Tests on Linux
 
-   - job: WindowsDesktop    
 
-     pool:
 
-       vmImage: windows-latest
 
-     variables:
 
-       BuildConfiguration: Release
 
-       BuildPlatform: Any CPU
 
-       DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
 
-     steps:
 
-     - task: UseDotNet@2
 
-       inputs:
 
-         version: 5.0.x
 
-         includePreviewVersions: true
 
-         performMultiLevelLookup: true
 
-     - task: DotNetCoreCLI@2
 
-       inputs:
 
-         command: custom
 
-         custom: tool
 
-         arguments: install --tool-path . nbgv
 
-       displayName: Install NBGV tool
 
-     - script: nbgv cloud -a -p Rx.NET/Source
 
-       displayName: Set Version
 
-     - task: DownloadPipelineArtifact@2
 
-       displayName: Download Build Artifacts
 
-       inputs:
 
-         artifactName: BuildPackages
 
-         targetPath: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LocalPackages
 
-     - task: DotNetCoreCLI@2
 
-       displayName: Update Rx
 
-       inputs:
 
-         command: custom
 
-         projects: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj
 
-         custom: add
 
-         arguments: package System.Reactive -v $(NBGV_NuGetPackageVersion) -s $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LocalPackages
 
-     - task: DotNetCoreCLI@2
 
-       displayName: Update Aliases
 
-       inputs:
 
-         command: custom
 
-         projects: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj
 
-         custom: add
 
-         arguments: package System.Reactive.Observable.Aliases -v $(NBGV_NuGetPackageVersion) -s $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LocalPackages
 
-     - task: DotNetCoreCLI@2
 
-       displayName: Update Testing
 
-       inputs:
 
-         command: custom
 
-         projects: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj
 
-         custom: add
 
-         arguments: package Microsoft.Reactive.Testing -v $(NBGV_NuGetPackageVersion) -s $(System.DefaultWorkingDirectory)/Rx.NET/Integration/LocalPackages
 
-     - task: DotNetCoreCLI@2
 
-       inputs:
 
-         command: test
 
-         projects: $(System.DefaultWorkingDirectory)/Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj
 
-         arguments: -c $(BuildConfiguration) --filter "SkipCI!=true"
 
-       displayName: Run Tests on Window Desktop
 
- - stage: CodeSign
 
-   condition: and(succeeded('IntegrationTests'), 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: DotNetCoreCLI@2
 
-             inputs:
 
-               command: custom
 
-               custom: tool
 
-               arguments: install --tool-path . SignClient
 
-             displayName: Install SignTool tool
 
-           - pwsh: |
 
-               .\SignClient "Sign" `
 
-               --baseDirectory "$(Pipeline.Workspace)\BuildPackages" `
 
-               --input "**/*.nupkg" `
 
-               --config "$(Pipeline.Workspace)\config\signclient.json" `
 
-               --user "$(SignClientUser)" `
 
-               --secret "$(SignClientSecret)" `
 
-               --name "Rx.NET" `
 
-               --description "Rx.NET" `
 
-               --descriptionUrl "https://github.com/dotnet/reactive"
 
-             displayName: Sign packages
 
-           - publish: $(Pipeline.Workspace)/BuildPackages
 
-             displayName: Publish Signed Packages
 
-             artifact: SignedPackages
 
 
  |