diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1286130be..2653c62b6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,7 +57,7 @@ jobs: - name: Build and run clover coverage report with Gradle uses: gradle/gradle-build-action@0d13054264b0bb894ded474f08ebb30921341cee with: - arguments: -PenableClover=true cloverGenerateReport + arguments: -PenableJacoco=true jacocoTestCoverageVerification env: GPR_USER: ${{env.GITHUB_ACTOR}} GPR_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/build.gradle b/build.gradle index 9a161998c..b5a2d6536 100644 --- a/build.gradle +++ b/build.gradle @@ -35,6 +35,11 @@ apply plugin: 'com.craigburke.client-dependencies' if (Boolean.valueOf(enableClover)) { apply from: "${project.projectDir}/gradle/clover.gradle" } + +if (Boolean.valueOf(enableJacoco)) { + apply from: "${project.projectDir}/gradle/jacoco.gradle" +} + apply from: "${project.projectDir}/gradle/publish.gradle" repositories { diff --git a/gradle.properties b/gradle.properties index e999be5bc..0eaaad6e6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,14 +1,15 @@ meritVersion=2.10-SNAPSHOT grailsVersion=5.2.4 -groovyVersion=3.0.9 +groovyVersion=3.0.7 gormVersion=7.3.2 grailsWrapperVersion=1.0.0 gradleWrapperVersion=5.0 assetPipelineVersion=3.4.4 -mongoDBVersion=7.0 +mongoDBVersion=7.3.2 geoToolsVersion=21.5 org.gradle.parallel=true enableClover=false +enableJacoco=false inplace=false org.gradle.jvmargs=-Xmx2048M diff --git a/gradle/clover.gradle b/gradle/clover.gradle index 9faeee956..95c6d8ef7 100644 --- a/gradle/clover.gradle +++ b/gradle/clover.gradle @@ -1,9 +1,9 @@ buildscript { repositories { - jcenter() + gradlePluginPortal() } dependencies { - classpath 'com.bmuschko:gradle-clover-plugin:3.0.1' + classpath 'com.bmuschko:gradle-clover-plugin:3.0.3' } } @@ -29,8 +29,8 @@ clover { encoding = 'UTF-8' // Override the Java Compiler source and target compatibility settings - sourceCompatibility = '1.8' - targetCompatibility = '1.8' + sourceCompatibility = '11' + targetCompatibility = '11' // used to add debug information for Spring applications debug = true diff --git a/gradle/jacoco.gradle b/gradle/jacoco.gradle new file mode 100644 index 000000000..632547500 --- /dev/null +++ b/gradle/jacoco.gradle @@ -0,0 +1,42 @@ +apply plugin:"jacoco" +jacoco { + toolVersion = "0.8.8" +} +test { + jacoco { + excludes = ['**/Application.groovy', + '**/BootStrap.groovy', + '**/UrlMappings.groovy', + '**/*GrailsPlugin.groovy', + '**/*Mock.groovy', + 'com.skedgo.converter.*'] + } +} +jacocoTestReport { + dependsOn test + + afterEvaluate { + getClassDirectories().setFrom(classDirectories.files.collect { + fileTree(dir: it, + exclude: [ + '**/TimezoneMapper.class' + ] + ) + }) + } + reports { + xml.enabled false + csv.enabled false + html.destination file("${buildDir}/reports/jacocoHtml") + } +} + +jacocoTestCoverageVerification { + violationRules { + rule { + limit { + minimum = 0.16 + } + } + } +} \ No newline at end of file