Skip to content

Commit

Permalink
Merge pull request #948 from nashcft/aggregate_kover_reports
Browse files Browse the repository at this point in the history
Aggregate kover reports into single report
  • Loading branch information
takahirom authored Aug 25, 2023
2 parents 1be49c1 + 997e6f0 commit 1ce187e
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 4 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/UnitTest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:

- run: ./gradlew testDevDebugUnitTest testDebugUnitTest --stacktrace

- run: ./gradlew koverHtmlReportDebug koverHtmlReportDevDebug --stacktrace
- run: ./gradlew koverHtmlReportDevDebug --stacktrace

- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
if: ${{ always() }}
Expand Down
22 changes: 22 additions & 0 deletions app-android/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,25 @@ dependencies {
implementation(libs.kermit)
testImplementation(projects.core.testing)
}

// Dependency configuration to aggregate Kover coverage reports
// TODO: extract report aggregation to build-logic
dependencies {
kover(projects.appIosShared)

kover(projects.feature.about)
kover(projects.feature.contributors)
kover(projects.feature.floorMap)
kover(projects.feature.main)
kover(projects.feature.sessions)
kover(projects.feature.sponsors)
kover(projects.feature.staff)
kover(projects.feature.stamps)

kover(projects.core.common)
kover(projects.core.data)
kover(projects.core.designsystem)
kover(projects.core.model)
kover(projects.core.testing)
kover(projects.core.ui)
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,35 @@
package io.github.droidkaigi.confsched2023.primitive

import kotlinx.kover.gradle.plugin.dsl.KoverReportExtension
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure

class KoverPlugin : Plugin<Project> {
override fun apply(target: Project) {
with (target) {
with(target) {
pluginManager.apply("org.jetbrains.kotlinx.kover")

configure<KoverReportExtension> {
filters {
excludes {
packages(
"com.airbnb.android.showkase",
"dagger.hilt.*",
"hilt_aggregated_deps",
)
classes(
// classes generated by Hilt
"Hilt_*",
"*_Factory",
"*_HiltModules*",
"*Module_Provide*Factory",
// compose previews
"*Preview*Kt",
)
}
}
}
}
}
}
}
1 change: 1 addition & 0 deletions feature/contributors/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ plugins {
id("droidkaigi.primitive.kmp.android.hilt")
id("droidkaigi.primitive.kmp.ios")
id("droidkaigi.primitive.kmp.compose")
id("droidkaigi.primitive.kover")
}

android.namespace = "io.github.droidkaigi.confsched2023.feature.contributors"
Expand Down
5 changes: 4 additions & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ okHttp = "4.11.0"
ktorfit = "1.5.0"
detekt = "1.23.1"
twitterComposeRule = "0.0.26"
kover = "0.7.3"

[libraries]
androidGradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" }
Expand All @@ -49,6 +50,7 @@ completeKotlinPlugin = { module = "com.louiscad.complete-kotlin:plugin", version
detektGradlePlugin = { group = "io.gitlab.arturbosch.detekt", name = "detekt-gradle-plugin", version.ref = "detekt" }
detektFormatting = { group = "io.gitlab.arturbosch.detekt", name = "detekt-formatting", version.ref = "detekt" }
twitterComposeRule = { module = "com.twitter.compose.rules:detekt", version.ref = "twitterComposeRule" }
koverPlugin = { module = "org.jetbrains.kotlinx:kover-gradle-plugin", version.ref = "kover" }

androidDesugarJdkLibs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "androidDesugarJdkLibs" }

Expand Down Expand Up @@ -140,7 +142,7 @@ kotlinGradlePlugin = { id = "org.jetbrains.kotlin.android", version.ref = "kotli
hiltGradlePlugin = { id = "com.google.dagger.hilt.android", version.ref = "dagger" }
roborazziGradlePlugin = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" }
kspGradlePlugin = { id = "com.google.devtools.ksp", version.ref = "ksp" }
kotlinxKover = { id = "org.jetbrains.kotlinx.kover", version = "0.7.3" }
kotlinxKover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" }
detektGradlePlugin = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }

[bundles]
Expand All @@ -156,4 +158,5 @@ plugins = [
"kotlinxSerializationGradlePlugin",
"completeKotlinPlugin",
"detektGradlePlugin",
"koverPlugin"
]

0 comments on commit 1ce187e

Please sign in to comment.