Skip to content

Commit 41235cb

Browse files
committed
ci: only check for code coverage
1 parent 8d75d8b commit 41235cb

File tree

1 file changed

+53
-44
lines changed

1 file changed

+53
-44
lines changed

.pipelines/templates/run-unit-tests.yaml

Lines changed: 53 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ stages:
2626
} | { read xs; exit $xs; }
2727
} 4>&1
2828
29-
mv coverage-all.out linux-coverage.out
29+
# combine coverage from multiple modules
30+
(echo "mode: atomic"; tail -q -n +2 coverage-*.out) > coverage.cover
31+
mv coverage.cover linux-coverage.out
3032
retryCountOnTaskFailure: 3
3133
name: "Test"
3234
displayName: "Run Tests"
@@ -60,50 +62,57 @@ stages:
6062
targetPath: 'windows-coverage.out'
6163
artifactName: 'windows-coverage'
6264

63-
- stage: code_coverage
64-
displayName: Code Coverage Check
65-
dependsOn:
66-
- test
67-
jobs:
68-
- job: coverage
69-
displayName: Check Coverage
70-
pool:
71-
name: "$(BUILD_POOL_NAME_DEFAULT)"
72-
steps:
73-
- task: DownloadPipelineArtifact@2
74-
inputs:
75-
artifact: 'linux-coverage'
76-
path: './'
77-
- bash: |
78-
make tools
79-
sudo ln -s $(pwd)/build/tools/bin/gocov /usr/local/bin/gocov
80-
sudo ln -s $(pwd)/build/tools/bin/gocov-xml /usr/local/bin/gocov-xml
65+
# Looking for PRs from merge queue
66+
# Expected output refs/heads/gh-readonly-queue/master/pr-3780-f0a96a1
67+
- ${{ if contains(variables['Build.SourceBranch'], 'master/pr') }}:
68+
- stage: code_coverage
69+
displayName: Code Coverage Check
70+
dependsOn:
71+
- test
72+
jobs:
73+
- job: coverage
74+
displayName: Check Coverage
75+
pool:
76+
name: "$(BUILD_POOL_NAME_DEFAULT)"
77+
steps:
78+
- task: DownloadPipelineArtifact@2
79+
inputs:
80+
artifact: 'linux-coverage'
81+
path: './'
82+
- bash: |
83+
# use go work to include multiple modules or gocov will omit results from those modules
84+
make workspace
8185
82-
GOOS=linux gocov convert linux-coverage.out > linux-coverage.json
83-
GOOS=linux gocov-xml < linux-coverage.json > linux-coverage.xml
86+
make tools
87+
sudo ln -s $(pwd)/build/tools/bin/gocov /usr/local/bin/gocov
88+
sudo ln -s $(pwd)/build/tools/bin/gocov-xml /usr/local/bin/gocov-xml
8489
85-
# TODO: Add windows coverage back in once PublishCodeCoverageResults v2 works with BuildQualityChecks
90+
GOOS=linux gocov convert linux-coverage.out > linux-coverage.json
91+
GOOS=linux gocov-xml < linux-coverage.json > linux-coverage.xml
8692
87-
mkdir coverage
93+
# TODO: Add windows coverage back in once PublishCodeCoverageResults v2 works with BuildQualityChecks
8894
89-
mv linux-coverage.xml coverage/
90-
name: "Coverage"
91-
displayName: "Generate Coverage Report"
92-
condition: always()
93-
- task: PublishCodeCoverageResults@1
94-
displayName: "Publish Code Coverage Report"
95-
condition: always()
96-
inputs:
97-
codeCoverageTool: 'Cobertura'
98-
summaryFileLocation: coverage/linux-coverage.xml
99-
- task: BuildQualityChecks@8
100-
displayName: "Check Code Coverage Regression"
101-
condition: always()
102-
inputs:
103-
checkCoverage: true
104-
coverageFailOption: "build"
105-
coverageType: "lines"
106-
fallbackOnPRTargetBranch: false
107-
baseBranchRef: "master"
108-
allowCoverageVariance: true
109-
coverageVariance: 0.25
95+
mkdir coverage
96+
97+
mv linux-coverage.xml coverage/
98+
name: "Coverage"
99+
displayName: "Generate Coverage Report"
100+
condition: always()
101+
102+
- task: PublishCodeCoverageResults@1
103+
displayName: "Publish Code Coverage Report"
104+
condition: always()
105+
inputs:
106+
codeCoverageTool: 'Cobertura'
107+
summaryFileLocation: coverage/linux-coverage.xml
108+
- task: BuildQualityChecks@8
109+
displayName: "Check Code Coverage Regression"
110+
condition: always()
111+
inputs:
112+
checkCoverage: true
113+
coverageFailOption: "build"
114+
coverageType: "lines"
115+
fallbackOnPRTargetBranch: false
116+
baseBranchRef: "master"
117+
allowCoverageVariance: true
118+
coverageVariance: 0.25

0 commit comments

Comments
 (0)