-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathazure-release.yml
105 lines (90 loc) · 2.88 KB
/
azure-release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
trigger:
branches:
include:
- master
pool:
vmImage: 'ubuntu-latest'
variables:
buildConfiguration: 'Release'
ArtifactNugetName: 'packages-nuget'
steps:
- task: UseDotNet@2
displayName: 'Use .NET8 sdk'
inputs:
packageType: sdk
version: 8.x
installationPath: $(Agent.ToolsDirectory)/dotnet
- task: DotNetCoreCLI@2
inputs:
command: build
projects: Source/**/*.csproj
arguments: -c $(buildConfiguration) /p:patchVersion=$(Build.BuildId) /p:versionSuffix=$(versionSuffix)
workingDirectory: /
displayName: 'Build'
- task: DotNetCoreCLI@2
inputs:
command: test
projects: Tests/**/*.csproj
arguments: --configuration $(buildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura
workingDirectory: /
nobuild: true
displayName: Run Unit Tests
- script: |
dotnet tool install -g dotnet-reportgenerator-globaltool
reportgenerator -reports:Tests/**/coverage.cobertura.xml -targetdir:$(Build.SourcesDirectory)/CodeCoverage -reporttypes:Cobertura
displayName: Create reports
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage'
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(Build.SourcesDirectory)/CodeCoverage/Cobertura.xml'
- task: BuildQualityChecks@8
displayName: Check Build Warnings
inputs:
checkWarnings: true
warningFailOption: 'fixed'
warningThreshold: '0'
warningTaskFilters: '/^Build$/i'
warningFilters: '/\s([1-9]\d*\.?[0]*)\s+Warning\(s\)|\s([1-9]\d*\.?[0]*)\s+Error\(s\)/'
- task: BuildQualityChecks@8
displayName: Check Line Coverage
inputs:
checkCoverage: true
coverageFailOption: 'fixed'
coverageType: 'lines'
coverageThreshold: '70'
- task: BuildQualityChecks@8
displayName: Check Branch Coverage
inputs:
checkCoverage: true
coverageFailOption: 'fixed'
coverageType: 'branches'
coverageThreshold: '70'
- task: DotNetCoreCLI@2
displayName: Create nuget packages
inputs:
command: 'pack'
packagesToPack: 'Source/**/*.csproj;!**/*.Example.csproj'
packDirectory: '$(Build.ArtifactStagingDirectory)/packages'
nobuild: true
versioningScheme: 'off'
- task: DotNetCoreCLI@2
displayName: Publish nuget packages
inputs:
command: custom
custom: nuget
arguments: >
push $(Build.ArtifactStagingDirectory)/packages/*.nupkg
-s https://api.nuget.org/v3/index.json
-k $(NuGetApiKey) # Add your Nuget.org ApiKey as secret variable
#- task: DotNetCoreCLI@2
# displayName: "Publish"
# inputs:
# command: 'push'
# packagesToPush: '$(Build.ArtifactStagingDirectory)/packages/*.nupkg'
# nuGetFeedType: 'external'
# publishFeedCredentials: 'nuget.org'