pipeline { agent any stages { // stage('Build') { // steps { // withChecks(name: 'build', includeStage: false) { // withGradle { // sh """ // ./gradlew clean testClasses --no-daemon // """ // } // } // } // } // Build stage('Build') { steps { withChecks(name: 'Test', includeStage: false) { withGradle { sh """ ./gradlew clean test jacocoTestReport jacocoTestCoverageVerification --no-daemon """ } recordCoverage(tools: [[parser: 'JACOCO', pattern: '**/build/reports/jacoco/test/jacoco*.xml']], id: 'jacoco', name: 'Jacoco Coverage', sourceCodeRetention: 'EVERY_BUILD', qualityGates: [ [threshold: 40.0, metric: 'CLASS', baseline: 'PROJECT'], [threshold: 40.0, metric: 'METHOD', baseline: 'PROJECT'], [threshold: 40.0, metric: 'LINE', baseline: 'PROJECT'], [threshold: 40.0, metric: 'BRANCH', baseline: 'PROJECT']]) junit testResults: '**/build/test-results/test/TEST-*.xml' } } } // Test stage('Reports') { steps { script { // junit skipPublishingChecks: true, testResults: '**/build/test-results/test/TEST-*.xml' // archiveArtifacts artifacts: '**/coverage-sources.zip', allowEmptyArchive: false, fingerprint: false, onlyIfSuccessful: false publishHTML (target: [ allowMissing: true, alwaysLinkToLastBuild: false, keepAll: true, reportDir: 'app/build/reports/jacoco/test/html', reportFiles: 'index.html', reportName: 'Coverage Report' ]) // def pmd = scanForIssues tool: [$class: 'Pmd'], pattern: 'lib/build/reports/pmd/*.xml' // publishIssues issues: [pmd] } } } // Post } }