From b3472f9a50e80341453f9cbca4d9444bc039adfb Mon Sep 17 00:00:00 2001 From: bQUARKz Date: Thu, 20 Feb 2025 08:43:38 +0000 Subject: [PATCH] fix pipeline --- Jenkinsfile | 46 ++++++++++++++++++++++++++++++++++---------- README.md | 1 + app/build.gradle.kts | 36 ++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 10 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index dc34535..43cdf4b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -4,17 +4,43 @@ pipeline { stages { stage('Build') { steps { - echo 'Building..' - ./gradlew clean build + withChecks(name: 'Test', includeStage: true) { + 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', unstable: true], + [threshold: 40.0, metric: 'METHOD', baseline: 'PROJECT', unstable: true], + [threshold: 40.0, metric: 'LINE', baseline: 'PROJECT', unstable: true], + [threshold: 40.0, metric: 'INSTRUCTION', baseline: 'PROJECT', unstable: true], + [threshold: 40.0, metric: 'BRANCH', baseline: 'PROJECT', unstable: true]]) + junit testResults: '**/build/test-results/test/TEST-*.xml' + } } - } - stage('Test') { + } // Test + + stage('Reports') { steps { - echo 'Testing..' - ./gradlew test + script { + // 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] + } } - } + } // Reports } -} - - +} \ No newline at end of file diff --git a/README.md b/README.md index e69de29..abee2df 100644 --- a/README.md +++ b/README.md @@ -0,0 +1 @@ +[SIMPLE TEST FOR JENKINS] \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f8889ae..8df3e47 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -9,6 +9,7 @@ plugins { // Apply the application plugin to add support for building a CLI application in Java. application + jacoco } repositories { @@ -22,6 +23,7 @@ dependencies { // This dependency is used by the application. implementation("com.google.guava:guava:31.1-jre") + implementation("org.jacoco:org.jacoco.core:0.8.12") } // Apply a specific Java toolchain to ease working on different environments. @@ -31,6 +33,40 @@ java { } } +jacoco { + toolVersion = "0.8.12" +} + +tasks.jacocoTestReport { + reports { + xml.required.set(true) + csv.required.set(false) + html.required.set(true) + } +} + +//tasks.jacocoTestCoverageVerification { +// violationRules { +// rule { +// limit { +// minimum = "0.2".toBigDecimal() +// } +// } +// +// rule { +// isEnabled = false +// element = "CLASS" +// includes = listOf("jenkins.test.*") +// +// limit { +// counter = "LINE" +// value = "TOTALCOUNT" +// minimum = "0.3".toBigDecimal() +// } +// } +// } +//} + application { // Define the main class for the application. mainClass.set("jenkins.test.App")