You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by za...@apache.org on 2023/01/17 12:24:18 UTC
[calcite] branch main updated: [CALCITE-5475] Improve test coverage accuracy by aggregating modules
This is an automated email from the ASF dual-hosted git repository.
zabetak pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/main by this push:
new fe821caaa5 [CALCITE-5475] Improve test coverage accuracy by aggregating modules
fe821caaa5 is described below
commit fe821caaa5db0050bfa6f01a8c0397a20973138f
Author: Stamatis Zampetakis <za...@gmail.com>
AuthorDate: Fri Jan 13 17:02:53 2023 +0100
[CALCITE-5475] Improve test coverage accuracy by aggregating modules
Considering the modules in isolation leads to some modules
(e.g., testkit) reporting low coverage. The use of
jacoco-report-aggregation plugin alleviates the problem by aggregating
the coverage analysis from the individual modules into one unified
report.
While testing the changes there was one Jenkins job that got stuck
and kept running for almost ~24h. To prevent similar situation in the
future a 1h timeout is set in the code quality stage.
Close apache/calcite#3027
---
Jenkinsfile | 14 ++++++++------
build.gradle.kts | 17 +++++++++++++++++
2 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/Jenkinsfile b/Jenkinsfile
index 2f2aee558f..53cc1e6f31 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -40,12 +40,14 @@ node('ubuntu') {
}
}
stage('Code Quality') {
- withEnv(["Path+JDK=$JAVA_JDK_17/bin","JAVA_HOME=$JAVA_JDK_17"]) {
- withCredentials([string(credentialsId: 'SONARCLOUD_TOKEN', variable: 'SONAR_TOKEN')]) {
- if ( env.BRANCH_NAME.startsWith("PR-") ) {
- sh './gradlew --no-parallel --no-daemon build jacocoTestReport sonar -PenableJacoco -Dsonar.pullrequest.branch=${CHANGE_BRANCH} -Dsonar.pullrequest.base=${CHANGE_TARGET} -Dsonar.pullrequest.key=${CHANGE_ID} -Dsonar.login=${SONAR_TOKEN}'
- } else {
- sh './gradlew --no-parallel --no-daemon build jacocoTestReport sonar -PenableJacoco -Dsonar.branch.name=${BRANCH_NAME} -Dsonar.login=${SONAR_TOKEN}'
+ timeout(time: 1, unit: 'HOURS') {
+ withEnv(["Path+JDK=$JAVA_JDK_17/bin","JAVA_HOME=$JAVA_JDK_17"]) {
+ withCredentials([string(credentialsId: 'SONARCLOUD_TOKEN', variable: 'SONAR_TOKEN')]) {
+ if ( env.BRANCH_NAME.startsWith("PR-") ) {
+ sh './gradlew --no-parallel --no-daemon jacocoAggregateTestReport sonar -PenableJacoco -Dsonar.pullrequest.branch=${CHANGE_BRANCH} -Dsonar.pullrequest.base=${CHANGE_TARGET} -Dsonar.pullrequest.key=${CHANGE_ID} -Dsonar.login=${SONAR_TOKEN}'
+ } else {
+ sh './gradlew --no-parallel --no-daemon jacocoAggregateTestReport sonar -PenableJacoco -Dsonar.branch.name=${BRANCH_NAME} -Dsonar.login=${SONAR_TOKEN}'
+ }
}
}
}
diff --git a/build.gradle.kts b/build.gradle.kts
index ec1e8f9468..bbde9d140f 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -39,6 +39,7 @@ plugins {
checkstyle
calcite.buildext
jacoco
+ id("jacoco-report-aggregation")
id("org.checkerframework") apply false
id("com.github.autostyle")
id("org.nosphere.apache.rat")
@@ -171,6 +172,16 @@ releaseParams {
}
}
+reporting {
+ reports {
+ if (enableJacoco) {
+ val jacocoAggregateTestReport by creating(JacocoCoverageReport::class) {
+ testType.set(TestSuiteType.UNIT_TEST)
+ }
+ }
+ }
+}
+
val javadocAggregate by tasks.registering(Javadoc::class) {
group = JavaBasePlugin.DOCUMENTATION_GROUP
description = "Generates aggregate javadoc for all the artifacts"
@@ -229,6 +240,11 @@ dependencies {
for (m in dataSetsForSqlline) {
sqllineClasspath(module(m))
}
+ if (enableJacoco) {
+ for (p in subprojects) {
+ jacocoAggregation(p)
+ }
+ }
}
val buildSqllineClasspath by tasks.registering(Jar::class) {
@@ -300,6 +316,7 @@ fun com.github.autostyle.gradle.BaseFormatExtension.license() {
sonarqube {
properties {
property("sonar.test.inclusions", "**/*Test*/**")
+ property("sonar.coverage.jacoco.xmlReportPaths", "$buildDir/reports/jacoco/jacocoAggregateTestReport/jacocoAggregateTestReport.xml")
}
}