Skip to content

Commit 5c7eb6b

Browse files
committed
Integrate kover, calculate test coverage, add label
1 parent 4a00d7d commit 5c7eb6b

18 files changed

Lines changed: 58 additions & 8 deletions

File tree

.github/workflows/coverage.yml

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,23 @@ jobs:
1717
uses: actions/setup-java@v4
1818
with:
1919
distribution: temurin
20-
java-version: 17
20+
java-version: 21
21+
22+
- name: Generate test coverage
23+
shell: bash
24+
run: |
25+
COVERAGE=$(./gradlew components:test:coverage:koverLog | grep "application line coverage:" | tail -n1 | cut -d ":" -f 2 | tr -d '[:space:]%')
26+
echo "COVERAGE=$COVERAGE"
27+
echo "COVERAGE=$COVERAGE" >> $GITHUB_ENV
28+
29+
- name: Update dynamic badge gist
30+
uses: schneegans/dynamic-badges-action@v1.7.0
31+
with:
32+
auth: ${{ secrets.GIST_SECRET }}
33+
gistID: ae91ef6fa6f1837ef39b4f4ac21e91d2
34+
filename: valkyrie-coverage.json
35+
label: coverage
36+
message: ${{ env.COVERAGE }}%
37+
valColorRange: ${{ env.COVERAGE }}
38+
minColorRange: 0
39+
maxColorRange: 100

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
[![Marketplace version][badge:marketplace-version]][url:plugin-homepage]
1010
[![GitHub releases][badge:gh-release]][url:gh-releases]
1111
[![Downloads][badge:marketplace-downloads]][url:plugin-homepage]
12+
![Coverage][badge:coverage]
1213

1314
[![Telegram][badge:telegram-invite]][url:telegram-invite]
1415
[![Slack][badge:slack-invite]][url:slack-invite]
@@ -564,6 +565,10 @@ other available gradle commands:
564565

565566
- apply formatting: `./gradlew spotlessApply`
566567

568+
- create html test report: `./gradlew components:test:coverage:koverHtmlReport`
569+
570+
- print test coverage: `./gradlew components:test:coverage:koverLog`
571+
567572
### Migration guide
568573

569574
#### v0.13.0 -> v0.14.0
@@ -634,6 +639,8 @@ limitations under the License.
634639

635640
[badge:license]: https://img.shields.io/github/license/ComposeGears/Valkyrie?style=for-the-badge&labelColor=black&color=white
636641

642+
[badge:coverage]: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/egorikftp/ae91ef6fa6f1837ef39b4f4ac21e91d2/raw/valkyrie-coverage.json&style=for-the-badge&labelColor=black&color=white&label=Test%20Coverage
643+
637644
[url:plugin-homepage]: https://plugins.jetbrains.com/plugin/24786-valkyrie
638645

639646
[url:gh-releases]: https://github.com/ComposeGears/Valkyrie/releases

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ plugins {
77
alias(libs.plugins.kotlin.jvm) apply false
88
alias(libs.plugins.kotlin.multiplatform) apply false
99
alias(libs.plugins.kotlin.compose) apply false
10+
alias(libs.plugins.kover) apply false
1011
alias(libs.plugins.jetbrains.compose) apply false
1112
alias(libs.plugins.jetbrains.intellij) apply false
1213
alias(libs.plugins.jetbrains.intellij.module) apply false

cli/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ plugins {
22
alias(libs.plugins.kotlin.jvm)
33
alias(libs.plugins.buildConfig)
44
alias(libs.plugins.shadow)
5+
alias(libs.plugins.kover)
56
application
67
}
78

cli/src/main/kotlin/io/github/composegears/valkyrie/cli/ext/Outputs.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ internal fun outputInfo(message: Any) {
88
output(message.toString(), TextColors.green)
99
}
1010

11-
internal fun outputWarn(message: Any) {
12-
output("Warning: $message", TextColors.yellow)
13-
}
14-
1511
internal fun outputError(message: Any): Nothing {
1612
output("Error: $message", TextColors.red, true)
1713
exitProcess(1)

components/generator/common/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
alias(libs.plugins.kotlin.jvm)
3+
alias(libs.plugins.kover)
34
}
45

56
dependencies {

components/generator/common/src/main/kotlin/io/github/composegears/valkyrie/generator/ext/Spec.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ fun FileSpec.removeExplicitModeCode(): String = toString()
1313

1414
inline fun objectBuilder(
1515
name: String,
16-
builderAction: TypeSpec.Builder.() -> Unit = {},
16+
builderAction: TypeSpec.Builder.() -> Unit,
1717
) = TypeSpec.objectBuilder(name)
1818
.apply(builderAction)
1919
.build()

components/generator/iconpack/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
alias(libs.plugins.kotlin.jvm)
3+
alias(libs.plugins.kover)
34
}
45

56
sourceSets {

components/generator/imagevector/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
alias(libs.plugins.kotlin.jvm)
3+
alias(libs.plugins.kover)
34
}
45

56
sourceSets {

components/ir/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
alias(libs.plugins.valkyrie.kmp)
3+
alias(libs.plugins.kover)
34
}
45

56
kotlin {

0 commit comments

Comments
 (0)