Add Kover check (#250)
## Motivation and Context Make sure, that code is properly tested ## How Has This Been Tested? Run `./gradlew clean ktlintCheck build koverVerify koverLog koverHtmlReport` on CI ## Changes - Integrate Kover plugin for code coverage analysis - Publish Html report - Run `./gradlew clean ktlintCheck build koverVerify koverLog koverHtmlReport` on CI ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [x] Build tooling update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions -->
This commit is contained in:
parent
bbc7a8fdfc
commit
6b5f7a7345
3 changed files with 34 additions and 4 deletions
10
.github/workflows/build.yml
vendored
10
.github/workflows/build.yml
vendored
|
|
@ -17,7 +17,7 @@ jobs:
|
|||
runs-on: macos-latest
|
||||
name: Validate PR
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Set up JDK 21
|
||||
uses: actions/setup-java@v5
|
||||
|
|
@ -32,14 +32,16 @@ jobs:
|
|||
cache-read-only: true
|
||||
|
||||
- name: Build with Gradle
|
||||
run: ./gradlew clean build
|
||||
run: ./gradlew clean ktlintCheck build koverLog koverHtmlReport
|
||||
|
||||
- name: Upload JUnit test results
|
||||
- name: Upload Reports
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: junit-results
|
||||
path: '**/build/test-results/test/*.xml'
|
||||
path: |
|
||||
**/build/test-results/test/*.xml
|
||||
build/reports
|
||||
|
||||
- name: Disable Auto-Merge on Fail
|
||||
if: failure() && github.event_name == 'pull_request'
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
plugins {
|
||||
alias(libs.plugins.ktlint)
|
||||
alias(libs.plugins.kover)
|
||||
}
|
||||
|
||||
allprojects {
|
||||
|
|
@ -7,6 +8,31 @@ allprojects {
|
|||
version = "0.6.0"
|
||||
}
|
||||
|
||||
dependencies {
|
||||
kover(project(":kotlin-sdk-core"))
|
||||
kover(project(":kotlin-sdk-client"))
|
||||
kover(project(":kotlin-sdk-server"))
|
||||
kover(project(":kotlin-sdk-test"))
|
||||
}
|
||||
|
||||
subprojects {
|
||||
apply(plugin = "org.jlleitschuh.gradle.ktlint")
|
||||
apply(plugin = "org.jetbrains.kotlinx.kover")
|
||||
}
|
||||
|
||||
kover {
|
||||
reports {
|
||||
filters {
|
||||
includes.classes("io.modelcontextprotocol.kotlin.sdk.*")
|
||||
}
|
||||
total {
|
||||
log {
|
||||
}
|
||||
verify {
|
||||
rule {
|
||||
minBound(65)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ kotlin = "2.2.0"
|
|||
dokka = "2.0.0"
|
||||
atomicfu = "0.29.0"
|
||||
ktlint = "13.0.0"
|
||||
kover = "0.9.1"
|
||||
|
||||
# libraries version
|
||||
serialization = "1.9.0"
|
||||
|
|
@ -59,6 +60,7 @@ ktor-serialization-kotlinx-json = { group = "io.ktor", name = "ktor-serializatio
|
|||
[plugins]
|
||||
kotlinx-binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binaryCompatibilityValidatorPlugin" }
|
||||
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" }
|
||||
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" }
|
||||
|
||||
# Samples
|
||||
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
||||
|
|
|
|||
Loading…
Reference in a new issue