Skip to content

Commit 4f5f206

Browse files
authored
chore: update ci workflows to use consolidated kover coverage report
* kover config * fix authentication * remove unused stuff
1 parent 476a70a commit 4f5f206

9 files changed

Lines changed: 31 additions & 51 deletions

File tree

.github/workflows/verify.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,7 @@ jobs:
2828
cache-read-only: false
2929

3030
- name: Check code style
31-
run: ./gradlew detekt koverVerify koverXmlReport
31+
run: ./gradlew detekt
32+
33+
- name: Check tests
34+
run: ./gradlew allTests -Pkover koverVerify

AGENTS.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,14 @@ Kotlin Multiplatform library for the [Umami](https://umami.is) web analytics RES
1818
./gradlew detekt # Lint + auto-correct — runs automatically on pre-push; do NOT run autonomously
1919
./gradlew allTests # All tests, all KMP targets — very slow on dev machines; do NOT run autonomously
2020
./gradlew jvmTest # JVM tests only — still slow; do NOT run autonomously
21-
./gradlew koverVerify # Coverage gates — runs full test suite; do NOT run autonomously
2221
```
2322

2423
**When to run what:**
2524
- To verify a change compiles and behaves correctly, run only the specific test class(es) affected:
2625
```bash
2726
./gradlew jvmTest --tests "dev.appoutlet.umami.api.auth.LoginTest"
2827
```
29-
- `detekt`, `allTests`, `jvmTest`, and `koverVerify` must **only** be run when explicitly requested by the user.
30-
- CI pipeline order (reference only): `detekt``koverVerify``koverXmlReport`.
28+
- `detekt`, `allTests` and `jvmTest` must **only** be run when explicitly requested by the user.
3129

3230
Dokka and Maven publish require `--no-configuration-cache` despite it being globally enabled.
3331

build.gradle.kts

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import java.time.LocalDateTime
2-
import kotlinx.kover.gradle.plugin.dsl.AggregationType
3-
import kotlinx.kover.gradle.plugin.dsl.CoverageUnit
42

53
plugins {
64
alias(libs.plugins.android.application) apply false
@@ -14,17 +12,13 @@ plugins {
1412
alias(libs.plugins.detekt)
1513
alias(libs.plugins.dokka)
1614
alias(libs.plugins.gitHooks)
17-
alias(libs.plugins.kover)
1815
alias(libs.plugins.kotlin.android) apply false
1916
}
2017

2118
dependencies {
2219
dokka(project(":umami"))
2320
dokka(project(":umami-api"))
2421
dokkaPlugin(libs.dokka.versioning)
25-
26-
kover(project(":umami"))
27-
kover(project(":umami-api"))
2822
}
2923

3024
dokka {
@@ -52,32 +46,6 @@ dokka {
5246
}
5347
}
5448

55-
kover {
56-
reports {
57-
verify {
58-
rule {
59-
minBound(
60-
minValue = 80,
61-
coverageUnits = CoverageUnit.LINE,
62-
aggregationForGroup = AggregationType.COVERED_PERCENTAGE
63-
)
64-
65-
minBound(
66-
minValue = 80,
67-
coverageUnits = CoverageUnit.INSTRUCTION,
68-
aggregationForGroup = AggregationType.COVERED_PERCENTAGE
69-
)
70-
71-
minBound(
72-
minValue = 36,
73-
coverageUnits = CoverageUnit.BRANCH,
74-
aggregationForGroup = AggregationType.COVERED_PERCENTAGE,
75-
)
76-
}
77-
}
78-
}
79-
}
80-
8149
gitHooks {
8250
gitHooksDirectory = project.layout.projectDirectory.dir("git-hooks")
8351
gitDirectory = project.rootProject.layout.projectDirectory.dir(".git")

gradle/libs.versions.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "
4444
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
4545
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
4646
gitHooks = "eu.bambooapps.gradle.plugin.githook:1.1.1"
47-
kover = "org.jetbrains.kotlinx.kover:0.9.8"
4847
maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "maven-publish" }
4948
mokkery = "dev.mokkery:3.4.1"
5049
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }

sample/simple-compose-app/composeApp/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ kotlin {
2424
binaries.executable()
2525
}
2626
listOf(
27-
iosX64(),
2827
iosArm64(),
2928
iosSimulatorArm64()
3029
).forEach {

sample/simple-compose-app/composeApp/src/commonMain/kotlin/sample/app/Authentication.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@ import androidx.compose.ui.Alignment
2424
import androidx.compose.ui.Modifier
2525
import androidx.compose.ui.text.input.PasswordVisualTransformation
2626
import androidx.compose.ui.unit.dp
27+
import dev.appoutlet.umami.api.UmamiApi
2728
import dev.appoutlet.umami.api.auth
2829
import dev.appoutlet.umami.domain.User
2930
import kotlinx.coroutines.launch
3031

31-
private val auth = umami.auth()
32+
private val auth = UmamiApi().auth()
3233

3334
@Composable
3435
fun Authentication() {

settings.gradle.kts

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import kotlinx.kover.gradle.aggregation.settings.dsl.minBound
2+
import kotlinx.kover.gradle.plugin.dsl.AggregationType
3+
import kotlinx.kover.gradle.plugin.dsl.CoverageUnit
4+
15
rootProject.name = "umami"
26

37
pluginManagement {
@@ -29,11 +33,27 @@ dependencyResolutionManagement {
2933
}
3034
}
3135

32-
plugins {
33-
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
34-
}
35-
3636
include(":umami")
3737
include(":umami-api")
3838
include(":sample:simple-compose-app:composeApp")
3939
include(":sample:terminalApp")
40+
41+
42+
plugins {
43+
id("org.jetbrains.kotlinx.kover.aggregation") version "0.9.8"
44+
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
45+
}
46+
47+
kover {
48+
skipProjects(":sample:simple-compose-app:composeApp", ":sample:terminalApp")
49+
50+
reports {
51+
verify {
52+
rule {
53+
minBound(80, CoverageUnit.LINE, AggregationType.COVERED_PERCENTAGE)
54+
minBound(80, CoverageUnit.INSTRUCTION, AggregationType.COVERED_PERCENTAGE)
55+
minBound(36, CoverageUnit.BRANCH, AggregationType.COVERED_PERCENTAGE)
56+
}
57+
}
58+
}
59+
}

umami-api/build.gradle.kts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
@file:OptIn(ExperimentalWasmDsl::class)
22

33
import java.time.LocalDateTime
4-
import org.gradle.kotlin.dsl.dokkaPlugin
54
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
65

76
plugins {
87
alias(libs.plugins.android.library)
98
alias(libs.plugins.detekt)
109
alias(libs.plugins.dokka)
1110
alias(libs.plugins.kotlin.multiplatform)
12-
alias(libs.plugins.kover)
1311
alias(libs.plugins.maven.publish)
1412
alias(libs.plugins.mokkery)
1513
alias(libs.plugins.serialization)
@@ -21,10 +19,8 @@ kotlin {
2119
jvm()
2220
js { browser() }
2321
wasmJs { browser() }
24-
iosX64()
2522
iosArm64()
2623
iosSimulatorArm64()
27-
macosX64()
2824
macosArm64()
2925
linuxX64()
3026
mingwX64()
@@ -61,7 +57,6 @@ kotlin {
6157
}
6258
}
6359
}
64-
6560
}
6661

6762
dependencies {

umami/build.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ plugins {
99
alias(libs.plugins.detekt)
1010
alias(libs.plugins.dokka)
1111
alias(libs.plugins.kotlin.multiplatform)
12-
alias(libs.plugins.kover)
1312
alias(libs.plugins.maven.publish)
1413
alias(libs.plugins.mokkery)
1514
alias(libs.plugins.serialization)
@@ -22,10 +21,8 @@ kotlin {
2221
jvm()
2322
js { browser() }
2423
wasmJs { browser() }
25-
iosX64()
2624
iosArm64()
2725
iosSimulatorArm64()
28-
macosX64()
2926
macosArm64()
3027
linuxX64()
3128
mingwX64()

0 commit comments

Comments
 (0)