diff --git a/build.gradle.kts b/build.gradle.kts index 9756cd6..069866a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ plugins { kotlin("multiplatform") apply false id("com.palantir.git-version") + id("org.jetbrains.kotlinx.kover") } group = "opensavvy" diff --git a/versions.properties b/versions.properties index c5cb8ac..0111f72 100644 --- a/versions.properties +++ b/versions.properties @@ -9,6 +9,8 @@ plugin.com.palantir.git-version=0.15.0 +plugin.org.jetbrains.kotlinx.kover=0.5.0 + version.ch.qos.logback..logback-classic=1.2.11 version.kotlin=1.7.0 -- 2.51.2 From 44523790e7637e545e0203b5bf1acf7b73645204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20=E2=80=9CCLOVIS=E2=80=9D=20Canet?= Date: Sun, 3 Jul 2022 11:16:48 +0200 Subject: [PATCH 2/2] ci(gitlab): Run the tests with code coverage --- .gitlab-ci.yml | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b6a1751..abfeaeb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,3 +34,69 @@ backbone:publish: extends: [ .publish ] variables: module: backbone + +.test-jvm: + image: openjdk:latest + script: + - ./gradlew $module:koverReport # implies running the JVM tests + after_script: + - mkdir -p test-report-$module + - mv $module/build/reports/tests/jvmTest test-report-$module/test + - mv $module/build/reports/kover/project-html test-report-$module/coverage + - mv $module/build/reports/kover/project-xml/report.xml test-report-$module/coverage.xml + - values=$(cat test-report-$module/coverage.xml | tail -7 | head -5 | grep 'INSTRUCTION' | cut -d ' ' -f 3,4 | sed 's/missed="//;s/" covered="/ /;s/"\/>//') + - missed=$(<<<$values cut -d ' ' -f 1) + - covered=$(<<<$values cut -d ' ' -f 2) + - echo "Coverage $(($covered * 100 / ($covered + $missed)))%" + coverage: '/Coverage \d+%/' + artifacts: + paths: + - test-report-$module + expose_as: 'Test and coverage report' + reports: + junit: $module/build/test-results/jvmTest/**.xml + when: always + only: + - merge_requests + - main + - tags + +.test-jvm-convert-coverage: + image: registry.gitlab.com/haynes/jacoco2cobertura:1.0.8 + script: + - python /opt/cover2cover.py test-report-$module/coverage.xml $CI_PROJECT_DIR/$module/src/main/kotlin/ > cobertura.xml + artifacts: + reports: + coverage_report: + coverage_format: cobertura + path: cobertura.xml + only: + - merge_requests + - main + - tags + +logger:test:jvm: + extends: [ .test-jvm ] + variables: + module: logger + +logger:convert-coverage: + extends: [ .test-jvm-convert-coverage ] + needs: + - job: logger:test:jvm + artifacts: true + variables: + module: logger + +backbone:test:jvm: + extends: [ .test-jvm ] + variables: + module: backbone + +backbone:convert-coverage: + extends: [ .test-jvm-convert-coverage ] + needs: + - job: backbone:test:jvm + artifacts: true + variables: + module: backbone