From 45fd6db63b9fd819ff4c2878f187d99767bee5fd Mon Sep 17 00:00:00 2001 From: KiruthikaJeyashankar Date: Fri, 17 Jan 2025 16:26:59 +0530 Subject: [PATCH 1/6] [INJIMOB-2712] run sonar analysis job as push trigger Signed-off-by: KiruthikaJeyashankar --- .github/workflows/push-trigger.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push-trigger.yml b/.github/workflows/push-trigger.yml index 66563d4..cbac452 100644 --- a/.github/workflows/push-trigger.yml +++ b/.github/workflows/push-trigger.yml @@ -33,7 +33,7 @@ jobs: sonar_analysis: needs: build-maven-vc-verifier - if: "${{ github.event_name != 'pull_request' }}" + # if: "${{ github.event_name != 'pull_request' }}" uses: tw-mosip/kattu/.github/workflows/gradle-sonar-analysis.yml@injimob-2712-add-gradle-workflow with: SERVICE_LOCATION: vc-verifier/kotlin/vcverifier From 874ade874c5dad370b37d9034ee5f6abc21579a6 Mon Sep 17 00:00:00 2001 From: KiruthikaJeyashankar Date: Wed, 22 Jan 2025 09:51:20 +0530 Subject: [PATCH 2/6] [INJIMOB-2712] downgradle sonarqube plugin version to 5.x dongraded to 5.x version because the latest version 6.0.1.5171 has issue with sonar task - 'org.apache.commons.compress.archivers.tar.TarArchiveEntry org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry()' Signed-off-by: KiruthikaJeyashankar --- vc-verifier/kotlin/vcverifier/build.gradle.kts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/vc-verifier/kotlin/vcverifier/build.gradle.kts b/vc-verifier/kotlin/vcverifier/build.gradle.kts index 1ce40dd..675c6e9 100644 --- a/vc-verifier/kotlin/vcverifier/build.gradle.kts +++ b/vc-verifier/kotlin/vcverifier/build.gradle.kts @@ -4,7 +4,7 @@ plugins { `maven-publish` alias(libs.plugins.dokka) signing - id("org.sonarqube") version "6.0.1.5171" + id("org.sonarqube") version "5.1.0.4872" } android { @@ -92,4 +92,15 @@ tasks.register("sourcesJar") { apply(from = "publish-artifact.gradle") tasks.register("generatePom") { dependsOn("generatePomFileForAarPublication", "generatePomFileForJarReleasePublication") +} + +sonarqube { + properties { + property( "sonar.java.binaries", "build/intermediates/javac/debug") + property( "sonar.language", "kotlin") + property( "soanr.exclusions", "**/build/**, **/*.kt.generated, **/R.java, **/BuildConfig.java") + property( "sonar.scm.disabled", "true") +// Test coverage can be supported with jacoco +// property( "sonar.coverage.jacoco.xmlReportPaths", "build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml") + } } \ No newline at end of file From f3a46afadf6c5a1b83fd6cbb6a90615db47df7e5 Mon Sep 17 00:00:00 2001 From: KiruthikaJeyashankar Date: Wed, 22 Jan 2025 17:40:56 +0530 Subject: [PATCH 3/6] [INJIMOB-2712] add jacoco test coverage support Signed-off-by: KiruthikaJeyashankar --- .../kotlin/vcverifier/build.gradle.kts | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/vc-verifier/kotlin/vcverifier/build.gradle.kts b/vc-verifier/kotlin/vcverifier/build.gradle.kts index 675c6e9..503e203 100644 --- a/vc-verifier/kotlin/vcverifier/build.gradle.kts +++ b/vc-verifier/kotlin/vcverifier/build.gradle.kts @@ -5,8 +5,14 @@ plugins { alias(libs.plugins.dokka) signing id("org.sonarqube") version "5.1.0.4872" + jacoco } +jacoco { + toolVersion = "0.8.8" // Ensure compatibility +} + + android { namespace = "io.mosip.vccred.vcverifier" compileSdk = 33 @@ -50,14 +56,39 @@ dependencies { implementation("co.nstant.in:cbor:0.9") implementation ( "com.android.identity:identity-credential:20231002") - - testImplementation(libs.mockk) testImplementation(libs.junitJupiter) } tasks.withType { useJUnitPlatform() +// jacoco { +// isEnabled = true +// } +// finalizedBy(tasks.named("jacocoTestReport")) // Generate the Jacoco report after tests +} + +tasks.register("jacocoTestReport", JacocoReport::class) { + dependsOn("test") // Make sure you adjust the task name based on your build variant (e.g., testDebugUnitTest) + + reports { + xml.required = true + html.required = true + csv.required = false + } + + val kotlinTree = fileTree( + mapOf( + "dir" to "${layout.buildDirectory.get()}/tmp/kotlin-classes/debug", + "includes" to listOf("**/*.class") + ) + ) + val coverageSourceDirs = arrayOf("src/main/java") + + classDirectories.setFrom(files(kotlinTree)) + sourceDirectories.setFrom(coverageSourceDirs) + + executionData.setFrom(files("${layout.buildDirectory.get()}/jacoco/testDebugUnitTest.exec")) } tasks.register("jarRelease") { From 1085e8d0bf7a80126edbd96a2964047fab0322cd Mon Sep 17 00:00:00 2001 From: KiruthikaJeyashankar Date: Wed, 22 Jan 2025 17:42:36 +0530 Subject: [PATCH 4/6] [INJIMOB-2712] add jacocoTestReport as finalizer task of test Signed-off-by: KiruthikaJeyashankar --- vc-verifier/kotlin/vcverifier/build.gradle.kts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vc-verifier/kotlin/vcverifier/build.gradle.kts b/vc-verifier/kotlin/vcverifier/build.gradle.kts index 503e203..9f8808b 100644 --- a/vc-verifier/kotlin/vcverifier/build.gradle.kts +++ b/vc-verifier/kotlin/vcverifier/build.gradle.kts @@ -62,10 +62,10 @@ dependencies { tasks.withType { useJUnitPlatform() -// jacoco { -// isEnabled = true -// } -// finalizedBy(tasks.named("jacocoTestReport")) // Generate the Jacoco report after tests + jacoco { + isEnabled = true + } + finalizedBy(tasks.named("jacocoTestReport")) } tasks.register("jacocoTestReport", JacocoReport::class) { From 9bd54a1e80e03ff133001e3f1bfd7e853da09107 Mon Sep 17 00:00:00 2001 From: KiruthikaJeyashankar Date: Wed, 22 Jan 2025 17:46:12 +0530 Subject: [PATCH 5/6] [INJIMOB-2712] add test coverage support for sonar via jacoco Signed-off-by: KiruthikaJeyashankar --- vc-verifier/kotlin/vcverifier/build.gradle.kts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/vc-verifier/kotlin/vcverifier/build.gradle.kts b/vc-verifier/kotlin/vcverifier/build.gradle.kts index 9f8808b..c45037b 100644 --- a/vc-verifier/kotlin/vcverifier/build.gradle.kts +++ b/vc-verifier/kotlin/vcverifier/build.gradle.kts @@ -69,7 +69,7 @@ tasks.withType { } tasks.register("jacocoTestReport", JacocoReport::class) { - dependsOn("test") // Make sure you adjust the task name based on your build variant (e.g., testDebugUnitTest) + dependsOn("testDebugUnitTest") reports { xml.required = true @@ -131,7 +131,6 @@ sonarqube { property( "sonar.language", "kotlin") property( "soanr.exclusions", "**/build/**, **/*.kt.generated, **/R.java, **/BuildConfig.java") property( "sonar.scm.disabled", "true") -// Test coverage can be supported with jacoco -// property( "sonar.coverage.jacoco.xmlReportPaths", "build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml") + property( "sonar.coverage.jacoco.xmlReportPaths", "build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml") } } \ No newline at end of file From d2a5a1921c3dc61181e8153edcbcc992c59a8f14 Mon Sep 17 00:00:00 2001 From: KiruthikaJeyashankar Date: Wed, 22 Jan 2025 18:09:44 +0530 Subject: [PATCH 6/6] [INJIMOB-2712] revert disabling PR check for sonar workflow Signed-off-by: KiruthikaJeyashankar --- .github/workflows/push-trigger.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/push-trigger.yml b/.github/workflows/push-trigger.yml index cbac452..e4cfbf5 100644 --- a/.github/workflows/push-trigger.yml +++ b/.github/workflows/push-trigger.yml @@ -19,6 +19,7 @@ on: - 'injimob*' - 'develop' - 'master' + # To be removed - sonar-testing jobs: @@ -33,7 +34,7 @@ jobs: sonar_analysis: needs: build-maven-vc-verifier - # if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: tw-mosip/kattu/.github/workflows/gradle-sonar-analysis.yml@injimob-2712-add-gradle-workflow with: SERVICE_LOCATION: vc-verifier/kotlin/vcverifier