diff --git a/.pipelines/templates/run-unit-tests.yaml b/.pipelines/templates/run-unit-tests.yaml index 4de945ddc0..5eec708424 100644 --- a/.pipelines/templates/run-unit-tests.yaml +++ b/.pipelines/templates/run-unit-tests.yaml @@ -60,50 +60,52 @@ stages: targetPath: 'windows-coverage.out' artifactName: 'windows-coverage' - - stage: code_coverage - displayName: Code Coverage Check - dependsOn: - - test - jobs: - - job: coverage - displayName: Check Coverage - pool: - name: "$(BUILD_POOL_NAME_DEFAULT)" - steps: - - task: DownloadPipelineArtifact@2 - inputs: - artifact: 'linux-coverage' - path: './' - - bash: | - make tools - sudo ln -s $(pwd)/build/tools/bin/gocov /usr/local/bin/gocov - sudo ln -s $(pwd)/build/tools/bin/gocov-xml /usr/local/bin/gocov-xml + - ${{ if contains(variables['Build.SourceBranch'], 'master/pr') }}: + - stage: code_coverage + displayName: Code Coverage Check + dependsOn: + - test + jobs: + - job: coverage + displayName: Check Coverage + pool: + name: "$(BUILD_POOL_NAME_DEFAULT)" + steps: + - task: DownloadPipelineArtifact@2 + inputs: + artifact: 'linux-coverage' + path: './' + - bash: | + make tools + sudo ln -s $(pwd)/build/tools/bin/gocov /usr/local/bin/gocov + sudo ln -s $(pwd)/build/tools/bin/gocov-xml /usr/local/bin/gocov-xml - GOOS=linux gocov convert linux-coverage.out > linux-coverage.json - GOOS=linux gocov-xml < linux-coverage.json > linux-coverage.xml + GOOS=linux gocov convert linux-coverage.out > linux-coverage.json + GOOS=linux gocov-xml < linux-coverage.json > linux-coverage.xml - # TODO: Add windows coverage back in once PublishCodeCoverageResults v2 works with BuildQualityChecks + # TODO: Add windows coverage back in once PublishCodeCoverageResults v2 works with BuildQualityChecks - mkdir coverage + mkdir coverage - mv linux-coverage.xml coverage/ - name: "Coverage" - displayName: "Generate Coverage Report" - condition: always() - - task: PublishCodeCoverageResults@1 - displayName: "Publish Code Coverage Report" - condition: always() - inputs: - codeCoverageTool: 'Cobertura' - summaryFileLocation: coverage/linux-coverage.xml - - task: BuildQualityChecks@8 - displayName: "Check Code Coverage Regression" - condition: always() - inputs: - checkCoverage: true - coverageFailOption: "build" - coverageType: "lines" - fallbackOnPRTargetBranch: false - baseBranchRef: "master" - allowCoverageVariance: true - coverageVariance: 0.25 + mv linux-coverage.xml coverage/ + name: "Coverage" + displayName: "Generate Coverage Report" + condition: always() + + - task: PublishCodeCoverageResults@1 + displayName: "Publish Code Coverage Report" + condition: always() + inputs: + codeCoverageTool: 'Cobertura' + summaryFileLocation: coverage/linux-coverage.xml + - task: BuildQualityChecks@8 + displayName: "Check Code Coverage Regression" + condition: always() + inputs: + checkCoverage: true + coverageFailOption: "build" + coverageType: "lines" + fallbackOnPRTargetBranch: false + baseBranchRef: "master" + allowCoverageVariance: true + coverageVariance: 0.25