59 lines
1.4 KiB
Groovy
59 lines
1.4 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
CARGO_TERM_COLOR = 'always'
|
|
}
|
|
|
|
stages {
|
|
stage('Build') {
|
|
steps {
|
|
withChecks(name: 'Test', includeStage: true) {
|
|
sh '''
|
|
set -eux
|
|
make ci
|
|
'''
|
|
}
|
|
publishHTML(target: [
|
|
allowMissing: false,
|
|
alwaysLinkToLastBuild: true,
|
|
keepAll: true,
|
|
reportDir: 'target/llvm-cov/html',
|
|
reportFiles: 'index.html',
|
|
reportName: 'Rust Coverage HTML',
|
|
reportTitles: 'Coverage Report'
|
|
])
|
|
}
|
|
} // Test
|
|
|
|
stage('Coverage') {
|
|
steps {
|
|
sh '''
|
|
set -eux
|
|
make cobertura
|
|
'''
|
|
recordCoverage(
|
|
tools: [[parser: 'COBERTURA', pattern: 'target/llvm-cov/cobertura.xml']],
|
|
sourceCodeRetention: 'LAST_BUILD',
|
|
enabledForFailure: true,
|
|
failOnError: true,
|
|
checksAnnotationScope: 'MODIFIED_LINES',
|
|
id: 'rust-coverage',
|
|
name: 'Rust Coverage',
|
|
checksName: 'Rust Coverage',
|
|
qualityGates: [
|
|
[metric: 'LINE', baseline: 'MODIFIED_LINES', threshold: 20.0],
|
|
[metric: 'LINE', baseline: 'PROJECT', threshold: 20.0],
|
|
[metric: 'BRANCH', baseline: 'PROJECT', threshold: 20.0]
|
|
]
|
|
)
|
|
}
|
|
} // Cobertura
|
|
}
|
|
|
|
post {
|
|
always {
|
|
archiveArtifacts artifacts: 'target/llvm-cov/**', fingerprint: true
|
|
}
|
|
}
|
|
} |