azure-pipelines.rx.yml 2.9 KB

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