azure-pipelines.ix.yml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. trigger:
  2. branches:
  3. include:
  4. - master
  5. - rel/*
  6. paths:
  7. include:
  8. - Ix.NET/Source/*
  9. - .editorconfig
  10. - azure-pipelines.ix.yml
  11. pr:
  12. branches:
  13. include:
  14. - master
  15. - rel/*
  16. - IxAsyncCSharp8
  17. paths:
  18. include:
  19. - Ix.NET/Source/*
  20. - .editorconfig
  21. - azure-pipelines.ix.yml
  22. pool:
  23. vmImage: vs2017-win2016
  24. variables:
  25. BuildConfiguration: Release
  26. steps:
  27. - task: DotNetCoreInstaller@0
  28. inputs:
  29. version: '3.0.100-preview4-010374'
  30. - task: DotNetCoreCLI@2
  31. inputs:
  32. command: custom
  33. custom: tool
  34. arguments: install --tool-path . nbgv
  35. displayName: Install NBGV tool
  36. - script: nbgv cloud -p Ix.NET\Source
  37. displayName: Set Version
  38. - task: DotNetCoreCLI@2
  39. inputs:
  40. command: restore
  41. projects: Ix.NET/Source/**/*.csproj
  42. displayName: Restore
  43. - task: DotNetCoreCLI@2
  44. inputs:
  45. command: pack
  46. packagesToPack: Ix.NET/Source/**/System.Interactive*.csproj;Ix.NET/Source/**/System.Linq.*.csproj;!Ix.NET/Source/**/*.Tests*.csproj;!Ix.NET/Source/refs/**
  47. configuration: $(BuildConfiguration)
  48. packDirectory: $(Build.ArtifactStagingDirectory)\artifacts
  49. verbosityPack: Minimal
  50. displayName: Pack
  51. - task: DotNetCoreCLI@2
  52. inputs:
  53. command: custom
  54. custom: tool
  55. arguments: install --tool-path . dotnet-reportgenerator-globaltool
  56. displayName: Install ReportGenerator tool
  57. - task: DotNetCoreCLI@2
  58. inputs:
  59. command: test
  60. projects: Ix.NET/Source/**/*.Tests.csproj
  61. arguments: -c $(BuildConfiguration) -- RunConfiguration.DisableAppDomain=true
  62. displayName: Run Tests
  63. - script: reportgenerator -reports:$(Build.SourcesDirectory)/Ix.NET/Source/coverlet/raw/**/coverage.cobertura.xml -targetdir:$(Build.SourcesDirectory)/Ix.NET/Source/coverlet/reports -reporttypes:"HtmlInline_AzurePipelines;Cobertura"
  64. displayName: Create reports
  65. - task: PublishCodeCoverageResults@1
  66. displayName: 'Publish code coverage'
  67. inputs:
  68. codeCoverageTool: Cobertura
  69. summaryFileLocation: '$(Build.SourcesDirectory)/Ix.NET/Source/coverlet/reports/Cobertura.xml'
  70. reportDirectory: '$(Build.SourcesDirectory)/Ix.NET/Source/coverlet/reports'
  71. - task: DotNetCoreCLI@2
  72. inputs:
  73. command: custom
  74. custom: tool
  75. arguments: install --tool-path . Codecov.Tool
  76. displayName: Install Codecov tool
  77. condition: and(succeeded(), not(eq(variables['CODECOV_TOKEN'], '')))
  78. - script: codecov -f $(Build.SourcesDirectory)/Ix.NET/Source/coverlet/reports/Cobertura.xml --flag ixnet
  79. env:
  80. CODECOV_TOKEN: $(CODECOV_TOKEN)
  81. displayName: Upload coverage to Codecov
  82. condition: and(succeeded(), not(eq(variables['CODECOV_TOKEN'], '')))
  83. - task: PowerShell@2
  84. displayName: Authenticode Sign Packages
  85. inputs:
  86. filePath: Ix.NET/Source/build/Sign-Package.ps1
  87. env:
  88. SignClientUser: $(SignClientUser)
  89. SignClientSecret: $(SignClientSecret)
  90. ArtifactDirectory: $(Build.ArtifactStagingDirectory)\artifacts
  91. condition: and(succeeded(), not(eq(variables['build.reason'], 'PullRequest')), not(eq(variables['SignClientSecret'], '')), not(eq(variables['SignClientUser'], '')))
  92. - task: PublishBuildArtifacts@1
  93. inputs:
  94. PathtoPublish: $(Build.ArtifactStagingDirectory)\artifacts
  95. ArtifactName: artifacts
  96. publishLocation: Container