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', 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 } } }