azure-pipelines.rx.yml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. trigger:
  2. branches:
  3. include:
  4. - master
  5. - rel/*
  6. paths:
  7. include:
  8. - Rx.NET/Source/*
  9. - .editorconfig
  10. - azure-pipelines.rx.yml
  11. pool:
  12. vmImage: vs2017-win2016
  13. variables:
  14. BuildConfiguration: Release
  15. BuildPlatform: Any CPU
  16. steps:
  17. - task: DotNetCoreCLI@2
  18. inputs:
  19. command: custom
  20. custom: tool
  21. arguments: install --tool-path . nbgv
  22. displayName: Install NBGV tool
  23. condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
  24. - script: nbgv cloud -a -p Rx.NET\Source
  25. displayName: Set Version
  26. condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
  27. - task: DotNetCoreInstaller@0
  28. inputs:
  29. version: '2.2.104'
  30. - task: MSBuild@1
  31. displayName: Build System.Reactive.sln
  32. inputs:
  33. solution: Rx.NET/Source/System.Reactive.sln
  34. msbuildArguments: /restore /t:build /p:CreatePackage=true /p:NoPackageAnalysis=true /p:PackageOutputPath=$(Build.ArtifactStagingDirectory)\artifacts
  35. platform: $(BuildPlatform)
  36. configuration: $(BuildConfiguration)
  37. maximumCpuCount: true
  38. - task: NuGetCommand@2
  39. displayName: Pack compatibility package
  40. inputs:
  41. command: custom
  42. arguments: pack Rx.NET/Source/facades/System.Reactive.Compatibility.nuspec -Version $(NBGV_NuGetPackageVersion) -MinClientVersion 2.12 -NoPackageAnalysis -outputdirectory $(Build.ArtifactStagingDirectory)\artifacts
  43. condition: eq(variables['system.pullrequest.isfork'], false)
  44. - task: MSBuild@1
  45. displayName: Build for Test (ppdb) workaround
  46. inputs:
  47. solution: Rx.NET/Source/System.Reactive.sln
  48. msbuildArguments: /t:build /p:DebugType=portable
  49. platform: $(BuildPlatform)
  50. configuration: $(BuildConfiguration)
  51. maximumCpuCount: true
  52. - task: DotNetCoreCLI@2
  53. inputs:
  54. command: test
  55. projects: Rx.NET/Source/tests/Tests.System.Reactive/*.csproj
  56. arguments: -c $(BuildConfiguration) --no-build --no-restore --filter "SkipCI!=true" --collect:"Code Coverage" -s $(System.DefaultWorkingDirectory)/Rx.NET/Source/CodeCoverage.runsettings
  57. displayName: Run Unit Tests
  58. - task: DotNetCoreCLI@2
  59. inputs:
  60. command: test
  61. projects: Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Tests.System.Reactive.ApiApprovals.csproj
  62. arguments: -c $(BuildConfiguration) --no-build --no-restore
  63. displayName: Run Api Approvals Tests
  64. - task: PowerShell@2
  65. displayName: Authenticode Sign Packages
  66. inputs:
  67. filePath: Rx.NET/Source/build/Sign-Package.ps1
  68. env:
  69. SignClientUser: $(SignClientUser)
  70. SignClientSecret: $(SignClientSecret)
  71. ArtifactDirectory: $(Build.ArtifactStagingDirectory)\artifacts
  72. condition: and(succeeded(), not(eq(variables['build.reason'], 'PullRequest')), not(eq(variables['SignClientSecret'], '')), not(eq(variables['SignClientUser'], '')))
  73. - task: PublishBuildArtifacts@1
  74. inputs:
  75. PathtoPublish: $(Build.ArtifactStagingDirectory)\artifacts
  76. ArtifactName: artifacts
  77. publishLocation: Container
  78. condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))