From 8134b01dfd754da30f9cea2e92dcbeec2be9c3cb Mon Sep 17 00:00:00 2001 From: Egor Kitselyuk Date: Fri, 8 May 2026 12:12:57 +0300 Subject: [PATCH] Add kover --- .github/workflows/lint_unitTests_build.yml | 28 ++++++++++++++++++++-- build.gradle | 13 ++++++++++ gradle/libs.versions.toml | 5 +++- modulesCommon.gradle | 1 + 4 files changed, 44 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lint_unitTests_build.yml b/.github/workflows/lint_unitTests_build.yml index 1cb614ca..73064f50 100644 --- a/.github/workflows/lint_unitTests_build.yml +++ b/.github/workflows/lint_unitTests_build.yml @@ -11,6 +11,9 @@ on: - reopened - synchronize +permissions: + contents: read + jobs: lint: runs-on: ubuntu-latest @@ -64,13 +67,34 @@ jobs: - name: Setup Android SDK uses: android-actions/setup-android@v2 - - name: unit tests - run: ./gradlew --no-daemon --stacktrace testDebugUnitTest + - name: unit tests with coverage + run: ./gradlew --no-daemon --stacktrace testDebugUnitTest koverHtmlReport - name: test report uses: asadmansr/android-test-report-action@v1.2.0 if: ${{ always() }} + - name: upload coverage report + uses: actions/upload-pages-artifact@v3 + if: github.ref == 'refs/heads/develop' + with: + path: build/reports/kover/html + + deploy-coverage: + runs-on: ubuntu-latest + needs: unit + if: github.ref == 'refs/heads/develop' + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deploy.outputs.page_url }} + steps: + - name: deploy to GitHub Pages + id: deploy + uses: actions/deploy-pages@v4 + build: runs-on: ubuntu-latest steps: diff --git a/build.gradle b/build.gradle index 1159082e..55faa13a 100644 --- a/build.gradle +++ b/build.gradle @@ -22,6 +22,19 @@ allprojects { } } +apply plugin: 'org.jetbrains.kotlinx.kover' + +dependencies { + kover(project(':sdk')) + kover(project(':mindbox-firebase')) + kover(project(':mindbox-huawei')) + kover(project(':mindbox-rustore')) + kover(project(':mindbox-firebase-starter')) + kover(project(':mindbox-huawei-starter')) + kover(project(':mindbox-rustore-starter')) + kover(project(':mindbox-sdk-starter-core')) +} + tasks.register('clean', Delete) { delete rootProject.getLayout().getBuildDirectory() } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1ce4ed8e..926a903d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -39,6 +39,7 @@ agcp = "1.9.1.300" ktlint-plugin = "12.1.1" ksp = "1.9.22-1.0.17" maven_publish = "0.32.0" +kover = "0.8.3" pushclient = "7.2.0" @@ -51,6 +52,7 @@ buildscript-plugins = [ "ktlint_gradle_plugin", "ksp_gradle_plugin", "maven_publish_plugin", + "kover_gradle_plugin", ] test = [ @@ -116,4 +118,5 @@ google_services = { module = "com.google.gms:google-services", version.ref = "go agcp = { module = "com.huawei.agconnect:agcp", version.ref = "agcp" } ktlint_gradle_plugin = { module = "org.jlleitschuh.gradle:ktlint-gradle", version.ref = "ktlint-plugin" } ksp_gradle_plugin = { module = "com.google.devtools.ksp:symbol-processing-gradle-plugin", version.ref = "ksp" } -maven_publish_plugin = { module = "com.vanniktech:gradle-maven-publish-plugin", version.ref = "maven_publish" } \ No newline at end of file +maven_publish_plugin = { module = "com.vanniktech:gradle-maven-publish-plugin", version.ref = "maven_publish" } +kover_gradle_plugin = { module = "org.jetbrains.kotlinx:kover-gradle-plugin", version.ref = "kover" } \ No newline at end of file diff --git a/modulesCommon.gradle b/modulesCommon.gradle index 3d607614..e1b436a4 100644 --- a/modulesCommon.gradle +++ b/modulesCommon.gradle @@ -3,6 +3,7 @@ apply plugin: 'kotlin-android' apply plugin: 'signing' apply plugin: 'org.jlleitschuh.gradle.ktlint' apply plugin: 'com.vanniktech.maven.publish' +apply plugin: 'org.jetbrains.kotlinx.kover' group = 'com.github.mindbox-cloud'