Skip to content

Instantly share code, notes, and snippets.

@yardbirdsax
Last active January 29, 2020 14:13
Show Gist options
  • Save yardbirdsax/8d9b6c818ebb3e5b041404f185240d62 to your computer and use it in GitHub Desktop.
Save yardbirdsax/8d9b6c818ebb3e5b041404f185240d62 to your computer and use it in GitHub Desktop.
A sample YAML file for Azure Pipelines to collect and publish code coverage statistics for .NET Core projects.
name: $(Date:yyyyMMdd)$(Rev:.r)
trigger:
batch: true
branches:
include:
- release/*
- master
- develop
stages:
- stage: TestAndBuild
pool:
vmImage: "windows-2019"
displayName: "Test and Build"
jobs:
- job: CollectCodeCoverage
displayName: "Collect Code Coverage"
steps:
- task: NuGetToolInstaller@1
displayName: "Install NuGet"
- task: PowerShell@2
displayName: "Install Code Coverage tools"
inputs:
targetType: inline
script: |
dotnet add package Microsoft.CodeCoverage -v 16.4.0
dotnet tool install -g dotnet-reportgenerator-globaltool
- task: Bash@3
displayName: "Collect"
inputs:
targetType: inline
script: |
dotnet test --collect "Code Coverage" --results-directory "CodeCoverage"
- task: PowerShell@2
displayName: "Convert Code Coverage File"
inputs:
targetType: inline
script: |
$coverageFile = Get-ChildItem -Recurse CodeCoverage/*.coverage
~/.nuget/packages/microsoft.codecoverage/16.4.0/build/netstandard1.0/CodeCoverage/CodeCoverage.exe analyze /output:CodeCoverage/report.xml $coverageFile.FullName
reportgenerator -reports:CodeCoverage/report.xml -targetdir:CodeCoverage/
- task: PublishBuildArtifacts@1
displayName: "Publish coverage results"
inputs:
ArtifactName: CodeCoverageResults
publishLocation: Container
PathtoPublish: "CodeCoverage"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment