diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 2f2a4142..7706fdc0 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -230,7 +230,7 @@ jobs: timeout-minutes: 4 run: | # Note that we explicitly check just the Kotlin modules, to avoid compiling the Android modules here - ./gradlew :crash-lib:check :preference-api-lib:check :spackle-lib:check + ./gradlew :configuration-api-lib:check :crash-lib:check :preference-api-lib:check :spackle-lib:check - name: Collect Artifacts if: ${{ always() }} timeout-minutes: 1 @@ -240,7 +240,7 @@ jobs: mkdir ${ARTIFACTS_DIR_PATH} - zip -r ${RESULTS_ZIP_PATH} . -i \*build/reports/\* + zip -r ${RESULTS_ZIP_PATH} . -i \*build/reports/\* \*/build/kover/html/\* \*/build/kover/xml/report.xml - name: Upload Artifacts if: ${{ always() }} uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce diff --git a/build-conventions-secant/build.gradle.kts b/build-conventions-secant/build.gradle.kts index 0f2bb3fa..3a288364 100644 --- a/build-conventions-secant/build.gradle.kts +++ b/build-conventions-secant/build.gradle.kts @@ -47,6 +47,7 @@ dependencies { exclude(group = "org.jetbrains.kotlin", module = "kotlin-build-common") } implementation("wtf.emulator:gradle-plugin:${rootProperties.getProperty("EMULATOR_WTF_GRADLE_PLUGIN_VERSION")}") + implementation("org.jetbrains.kotlinx.kover:org.jetbrains.kotlinx.kover.gradle.plugin:${rootProperties.getProperty("KOVER_VERSION")}") } // A slightly gross way to use the root gradle.properties as the single source of truth for version numbers diff --git a/build-conventions-secant/gradle.lockfile b/build-conventions-secant/gradle.lockfile index bb0014d8..6f7bc770 100644 --- a/build-conventions-secant/gradle.lockfile +++ b/build-conventions-secant/gradle.lockfile @@ -149,11 +149,13 @@ org.jetbrains.kotlin:kotlin-tooling-core:1.8.10=compileClasspath,runtimeClasspat org.jetbrains.kotlin:kotlin-util-io:1.7.10=kotlinCompilerPluginClasspathMain org.jetbrains.kotlin:kotlin-util-io:1.8.10=compileClasspath,runtimeClasspath org.jetbrains.kotlin:kotlin-util-klib:1.8.10=runtimeClasspath +org.jetbrains.kotlinx.kover:org.jetbrains.kotlinx.kover.gradle.plugin:0.7.0-Alpha=compileClasspath,runtimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0=runtimeClasspath org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.1.0=runtimeClasspath org.jetbrains.kotlinx:kotlinx-serialization-core:1.1.0=runtimeClasspath org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.1.0=runtimeClasspath org.jetbrains.kotlinx:kotlinx-serialization-json:1.1.0=runtimeClasspath +org.jetbrains.kotlinx:kover-gradle-plugin:0.7.0-Alpha=compileClasspath,runtimeClasspath org.jetbrains:annotations:13.0=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,runtimeClasspath org.json:json:20180813=runtimeClasspath org.jvnet.staxex:stax-ex:1.8.1=runtimeClasspath diff --git a/build-conventions-secant/src/main/kotlin/secant.kover-conventions.gradle.kts b/build-conventions-secant/src/main/kotlin/secant.kover-conventions.gradle.kts new file mode 100644 index 00000000..8d81f4df --- /dev/null +++ b/build-conventions-secant/src/main/kotlin/secant.kover-conventions.gradle.kts @@ -0,0 +1,16 @@ +pluginManager.withPlugin("org.jetbrains.kotlinx.kover") { + extensions.findByType()?.apply { + disabledForProject = !project.property("IS_KOTLIN_TEST_COVERAGE_ENABLED").toString().toBoolean() + } + + extensions.findByType()?.apply { + html { + onCheck = true + setReportDir(layout.buildDirectory.dir("kover/html")) + } + xml { + onCheck = true + setReportFile(layout.buildDirectory.file("kover/xml/report.xml")) + } + } +} diff --git a/build.gradle.kts b/build.gradle.kts index d966b6d8..24973d81 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,3 @@ -import kotlinx.kover.api.KoverMergedConfig - buildscript { dependencyLocking { // This property is treated specially, as it is not defined by default in the root gradle.properties @@ -59,7 +57,6 @@ buildscript { plugins { id("com.github.ben-manes.versions") id("com.osacky.fulladle") - id("org.jetbrains.kotlinx.kover") id("secant.detekt-conventions") id("secant.ktlint-conventions") id("secant.rosetta-conventions") @@ -195,32 +192,3 @@ fladle { "/sdcard/googletest/test_outputfiles" )) } - -kover { - isDisabled.set(!project.property("IS_KOTLIN_TEST_COVERAGE_ENABLED").toString().toBoolean()) - engine.set(kotlinx.kover.api.JacocoEngine(project.property("JACOCO_VERSION").toString())) - - // Don't run on the Android projects, as they have coverage generated in a different way - // through Android's instrumented tests - extensions.configure { - enable() - filters { - projects { - excludes.addAll(setOf( - "app", - "crash-android-lib", - "preference-impl-android-lib", - "sdk-ext-lib", - "sdk-ext-ui-lib", - "spackle-android-lib", - "test-lib", - "ui-benchmark-test", - "ui-design-lib", - "ui-integration-test", - "ui-lib", - "ui-screenshot-test" - )) - } - } - } -} diff --git a/buildscript-gradle.lockfile b/buildscript-gradle.lockfile index a61ecb6a..d185c5cf 100644 --- a/buildscript-gradle.lockfile +++ b/buildscript-gradle.lockfile @@ -148,13 +148,13 @@ org.jetbrains.kotlin:kotlin-stdlib:1.7.10=classpath org.jetbrains.kotlin:kotlin-tooling-core:1.8.10=classpath org.jetbrains.kotlin:kotlin-util-io:1.8.10=classpath org.jetbrains.kotlin:kotlin-util-klib:1.8.10=classpath -org.jetbrains.kotlinx.kover:org.jetbrains.kotlinx.kover.gradle.plugin:0.6.1=classpath +org.jetbrains.kotlinx.kover:org.jetbrains.kotlinx.kover.gradle.plugin:0.7.0-Alpha=classpath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0=classpath org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.1.0=classpath org.jetbrains.kotlinx:kotlinx-serialization-core:1.1.0=classpath org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.1.0=classpath org.jetbrains.kotlinx:kotlinx-serialization-json:1.1.0=classpath -org.jetbrains.kotlinx:kover:0.6.1=classpath +org.jetbrains.kotlinx:kover-gradle-plugin:0.7.0-Alpha=classpath org.jetbrains:annotations:13.0=classpath org.json:json:20180813=classpath org.jvnet.staxex:stax-ex:1.8.1=classpath diff --git a/configuration-api-lib/build.gradle.kts b/configuration-api-lib/build.gradle.kts index baa61298..2a77ceba 100644 --- a/configuration-api-lib/build.gradle.kts +++ b/configuration-api-lib/build.gradle.kts @@ -2,6 +2,9 @@ plugins { kotlin("multiplatform") id("secant.kotlin-multiplatform-build-conventions") id("secant.dependency-conventions") + + id("org.jetbrains.kotlinx.kover") + id("secant.kover-conventions") } kotlin { diff --git a/configuration-api-lib/gradle.lockfile b/configuration-api-lib/gradle.lockfile new file mode 100644 index 00000000..a26c7d99 --- /dev/null +++ b/configuration-api-lib/gradle.lockfile @@ -0,0 +1,43 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +junit:junit:4.13.2=jvmTestCompileClasspath,jvmTestRuntimeClasspath +net.java.dev.jna:jna:5.6.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.freemarker:freemarker:2.3.30=koverJvmReporter +org.hamcrest:hamcrest-core:1.3=jvmTestCompileClasspath,jvmTestRuntimeClasspath +org.jetbrains.intellij.deps:coverage-report:1.0.18=koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-agent:1.0.709=koverJvmAgent,koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-reporter:1.0.709=koverJvmReporter +org.jetbrains.intellij.deps:trove4j:1.0.20200330=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.10=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.8.10=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.8.10=kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-script-runtime:1.8.10=kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-scripting-common:1.8.10=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.8.10=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.8.10=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-scripting-jvm:1.8.10=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.10=allSourceSetsCompileDependenciesMetadata,allSourceSetsRuntimeDependenciesMetadata,commonMainApiDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestImplementationDependenciesMetadata,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,metadataCommonMainCompileClasspath,metadataCompileClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.10=jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestImplementationDependenciesMetadata,jvmTestRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10=jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestImplementationDependenciesMetadata,jvmTestRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:1.8.10=jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestImplementationDependenciesMetadata,jvmTestRuntimeClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-test-annotations-common:1.8.10=commonTestImplementationDependenciesMetadata +org.jetbrains.kotlin:kotlin-test-common:1.8.10=commonTestImplementationDependenciesMetadata +org.jetbrains.kotlin:kotlin-test-junit:1.8.10=jvmTestCompileClasspath,jvmTestRuntimeClasspath +org.jetbrains.kotlin:kotlin-test:1.8.10=commonTestImplementationDependenciesMetadata,jvmTestCompileClasspath,jvmTestImplementationDependenciesMetadata,jvmTestRuntimeClasspath +org.jetbrains.kotlinx:atomicfu:0.17.3=allSourceSetsCompileDependenciesMetadata,allSourceSetsRuntimeDependenciesMetadata,metadataCommonMainCompileClasspath,metadataCompileClasspath +org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.5=jvmCompileClasspath,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestRuntimeClasspath +org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5=allSourceSetsCompileDependenciesMetadata,allSourceSetsRuntimeDependenciesMetadata,commonMainApiDependenciesMetadata,commonTestApiDependenciesMetadata,jvmCompileClasspath,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestRuntimeClasspath,metadataCommonMainCompileClasspath,metadataCompileClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4=jvmCompileClasspath,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestRuntimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4=jvmCompileClasspath,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestRuntimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4=allSourceSetsCompileDependenciesMetadata,allSourceSetsRuntimeDependenciesMetadata,commonMainApiDependenciesMetadata,commonTestApiDependenciesMetadata,jvmCompileClasspath,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestRuntimeClasspath,metadataCommonMainCompileClasspath,metadataCompileClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.6.4=jvmTestCompileClasspath,jvmTestRuntimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4=commonTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestRuntimeClasspath +org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.4.0=jvmCompileClasspath,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestRuntimeClasspath +org.jetbrains.kotlinx:kotlinx-datetime:0.4.0=allSourceSetsCompileDependenciesMetadata,allSourceSetsRuntimeDependenciesMetadata,commonMainApiDependenciesMetadata,commonTestApiDependenciesMetadata,jvmCompileClasspath,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestRuntimeClasspath,metadataCommonMainCompileClasspath,metadataCompileClasspath +org.jetbrains.kotlinx:kotlinx-serialization-core:1.3.2=allSourceSetsCompileDependenciesMetadata,allSourceSetsRuntimeDependenciesMetadata,metadataCommonMainCompileClasspath,metadataCompileClasspath +org.jetbrains:annotations:13.0=jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestImplementationDependenciesMetadata,jvmTestRuntimeClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath +org.jetbrains:annotations:16.0.2=koverJvmReporter +org.json:json:20210307=koverJvmReporter +empty=archives,commonMainCompileOnlyDependenciesMetadata,commonMainImplementationDependenciesMetadata,commonMainIntransitiveDependenciesMetadata,commonMainRuntimeOnlyDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestIntransitiveDependenciesMetadata,commonTestRuntimeOnlyDependenciesMetadata,default,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainIntransitiveDependenciesMetadata,jvmMainRuntimeOnlyDependenciesMetadata,jvmTestApiDependenciesMetadata,jvmTestCompileOnlyDependenciesMetadata,jvmTestIntransitiveDependenciesMetadata,jvmTestRuntimeOnlyDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,koverAggregatedSetup,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/crash-lib/build.gradle.kts b/crash-lib/build.gradle.kts index 6b962287..6cb16565 100644 --- a/crash-lib/build.gradle.kts +++ b/crash-lib/build.gradle.kts @@ -2,6 +2,9 @@ plugins { kotlin("multiplatform") id("secant.kotlin-multiplatform-build-conventions") id("secant.dependency-conventions") + + id("org.jetbrains.kotlinx.kover") + id("secant.kover-conventions") } kotlin { diff --git a/crash-lib/gradle.lockfile b/crash-lib/gradle.lockfile index 4adc7346..807f0675 100644 --- a/crash-lib/gradle.lockfile +++ b/crash-lib/gradle.lockfile @@ -3,7 +3,11 @@ # This file is expected to be part of source control. junit:junit:4.13.2=commonTestImplementationCopy,jvmTestCompileClasspath,jvmTestRuntimeClasspath net.java.dev.jna:jna:5.6.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.freemarker:freemarker:2.3.30=koverJvmReporter org.hamcrest:hamcrest-core:1.3=commonTestImplementationCopy,jvmTestCompileClasspath,jvmTestRuntimeClasspath +org.jetbrains.intellij.deps:coverage-report:1.0.18=koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-agent:1.0.709=koverJvmAgent,koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-reporter:1.0.709=koverJvmReporter org.jetbrains.intellij.deps:trove4j:1.0.20200330=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:1.6.20=kotlinCompilerClasspathCopy org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.10=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath @@ -58,4 +62,6 @@ org.jetbrains.kotlinx:kotlinx-datetime:0.3.3=commonMainApiCopy2,jvmTestCompileCl org.jetbrains.kotlinx:kotlinx-datetime:0.4.0=allSourceSetsCompileDependenciesMetadata,allSourceSetsRuntimeDependenciesMetadata,commonMainApiDependenciesMetadata,commonTestApiDependenciesMetadata,jvmCompileClasspath,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestRuntimeClasspath,metadataCommonMainCompileClasspath,metadataCompileClasspath org.jetbrains.kotlinx:kotlinx-serialization-core:1.3.2=allSourceSetsCompileDependenciesMetadata,allSourceSetsRuntimeDependenciesMetadata,metadataCommonMainCompileClasspath,metadataCompileClasspath org.jetbrains:annotations:13.0=commonTestImplementationCopy,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestImplementationDependenciesMetadata,jvmTestRuntimeClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath -empty=archives,archivesCopy,commonMainCompileOnlyCopy,commonMainCompileOnlyDependenciesMetadata,commonMainImplementationCopy,commonMainIntransitiveDependenciesMetadata,commonMainIntransitiveDependenciesMetadataCopy,commonMainRuntimeOnlyCopy,commonMainRuntimeOnlyDependenciesMetadata,commonTestCompileOnlyCopy,commonTestCompileOnlyDependenciesMetadata,commonTestIntransitiveDependenciesMetadata,commonTestIntransitiveDependenciesMetadataCopy,commonTestRuntimeOnlyCopy,commonTestRuntimeOnlyDependenciesMetadata,default,defaultCopy,jvmCompileOnlyCopy,jvmMainApiCopy,jvmMainCompileOnlyCopy,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationCopy,jvmMainImplementationDependenciesMetadata,jvmMainIntransitiveDependenciesMetadata,jvmMainIntransitiveDependenciesMetadataCopy,jvmMainRuntimeOnlyCopy,jvmMainRuntimeOnlyDependenciesMetadata,jvmRuntimeOnlyCopy,jvmSourceArtifactsCopy,jvmTestApiCopy,jvmTestApiDependenciesMetadata,jvmTestCompileOnlyCopy,jvmTestCompileOnlyDependenciesMetadata,jvmTestIntransitiveDependenciesMetadata,jvmTestIntransitiveDependenciesMetadataCopy,jvmTestRuntimeOnlyCopy,jvmTestRuntimeOnlyDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinCompilerPluginClasspathCopy,kotlinNativeCompilerPluginClasspath,kotlinNativeCompilerPluginClasspathCopy,kotlinScriptDef,kotlinScriptDefCopy,kotlinScriptDefExtensions,kotlinScriptDefExtensionsCopy,metadataCommonMainCompileOnlyCopy,metadataCompileOnlyCopy,testKotlinScriptDef,testKotlinScriptDefCopy,testKotlinScriptDefExtensions,testKotlinScriptDefExtensionsCopy +org.jetbrains:annotations:16.0.2=koverJvmReporter +org.json:json:20210307=koverJvmReporter +empty=archives,archivesCopy,commonMainCompileOnlyCopy,commonMainCompileOnlyDependenciesMetadata,commonMainImplementationCopy,commonMainIntransitiveDependenciesMetadata,commonMainIntransitiveDependenciesMetadataCopy,commonMainRuntimeOnlyCopy,commonMainRuntimeOnlyDependenciesMetadata,commonTestCompileOnlyCopy,commonTestCompileOnlyDependenciesMetadata,commonTestIntransitiveDependenciesMetadata,commonTestIntransitiveDependenciesMetadataCopy,commonTestRuntimeOnlyCopy,commonTestRuntimeOnlyDependenciesMetadata,default,defaultCopy,jvmCompileOnlyCopy,jvmMainApiCopy,jvmMainCompileOnlyCopy,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationCopy,jvmMainImplementationDependenciesMetadata,jvmMainIntransitiveDependenciesMetadata,jvmMainIntransitiveDependenciesMetadataCopy,jvmMainRuntimeOnlyCopy,jvmMainRuntimeOnlyDependenciesMetadata,jvmRuntimeOnlyCopy,jvmSourceArtifactsCopy,jvmTestApiCopy,jvmTestApiDependenciesMetadata,jvmTestCompileOnlyCopy,jvmTestCompileOnlyDependenciesMetadata,jvmTestIntransitiveDependenciesMetadata,jvmTestIntransitiveDependenciesMetadataCopy,jvmTestRuntimeOnlyCopy,jvmTestRuntimeOnlyDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinCompilerPluginClasspathCopy,kotlinNativeCompilerPluginClasspath,kotlinNativeCompilerPluginClasspathCopy,kotlinScriptDef,kotlinScriptDefCopy,kotlinScriptDefExtensions,kotlinScriptDefExtensionsCopy,koverAggregatedSetup,metadataCommonMainCompileOnlyCopy,metadataCompileOnlyCopy,testKotlinScriptDef,testKotlinScriptDefCopy,testKotlinScriptDefExtensions,testKotlinScriptDefExtensionsCopy diff --git a/docs/testing/Testing.md b/docs/testing/Testing.md index bb5d1fb6..da951f49 100644 --- a/docs/testing/Testing.md +++ b/docs/testing/Testing.md @@ -29,7 +29,7 @@ When coverage is enabled, running instrumentation tests will automatically gener ### Generating code coverage locally - `./gradlew :connectedCheck -PIS_ANDROID_INSTRUMENTATION_TEST_COVERAGE_ENABLED=true` for Android modules. These modules internally use JaCoCo to generate test coverage. -- `./gradlew :check` for Kotlin modules. These modules internally use Kover to generate test coverage. +- `./gradlew :check` for Kotlin modules. These modules internally use Kover to generate test coverage. You can then find the coverage report in `/build/kover/html/index.html`. ### Generating code coverage with emulator.wtf 1. `./gradlew :testDebugWithEmulatorWtf -PIS_ANDROID_INSTRUMENTATION_TEST_COVERAGE_ENABLED=true` diff --git a/gradle.properties b/gradle.properties index a427e74d..94806a31 100644 --- a/gradle.properties +++ b/gradle.properties @@ -146,7 +146,7 @@ KOTLIN_VERSION=1.8.10 KOTLINX_COROUTINES_VERSION=1.6.4 KOTLINX_DATETIME_VERSION=0.4.0 KOTLINX_IMMUTABLE_COLLECTIONS_VERSION=0.3.5 -KOVER_VERSION=0.6.1 +KOVER_VERSION=0.7.0-Alpha PLAY_APP_UPDATE_VERSION=2.0.1 PLAY_APP_UPDATE_KTX_VERSION=2.0.1 ZCASH_ANDROID_WALLET_PLUGINS_VERSION=1.0.0 diff --git a/preference-api-lib/build.gradle.kts b/preference-api-lib/build.gradle.kts index 310206b0..f9d61653 100644 --- a/preference-api-lib/build.gradle.kts +++ b/preference-api-lib/build.gradle.kts @@ -2,6 +2,9 @@ plugins { kotlin("multiplatform") id("secant.kotlin-multiplatform-build-conventions") id("secant.dependency-conventions") + + id("org.jetbrains.kotlinx.kover") + id("secant.kover-conventions") } kotlin { diff --git a/preference-api-lib/gradle.lockfile b/preference-api-lib/gradle.lockfile index aef26c7f..e0e40dfa 100644 --- a/preference-api-lib/gradle.lockfile +++ b/preference-api-lib/gradle.lockfile @@ -3,7 +3,11 @@ # This file is expected to be part of source control. junit:junit:4.13.2=jvmTestCompileClasspath,jvmTestRuntimeClasspath net.java.dev.jna:jna:5.6.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.freemarker:freemarker:2.3.30=koverJvmReporter org.hamcrest:hamcrest-core:1.3=jvmTestCompileClasspath,jvmTestRuntimeClasspath +org.jetbrains.intellij.deps:coverage-report:1.0.18=koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-agent:1.0.709=koverJvmAgent,koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-reporter:1.0.709=koverJvmReporter org.jetbrains.intellij.deps:trove4j:1.0.20200330=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:1.6.20=kotlinCompilerClasspathCopy org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.10=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath @@ -45,4 +49,6 @@ org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.1=commonTestImplementationCopy org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.2=commonTestImplementationCopy2 org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4=commonTestImplementationDependenciesMetadata,jvmTestCompileClasspath,jvmTestRuntimeClasspath org.jetbrains:annotations:13.0=jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestImplementationDependenciesMetadata,jvmTestRuntimeClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath -empty=allSourceSetsCompileDependenciesMetadataCopy,allSourceSetsRuntimeDependenciesMetadataCopy,archives,archivesCopy,commonMainApiDependenciesMetadataCopy,commonMainCompileOnlyCopy,commonMainCompileOnlyDependenciesMetadata,commonMainImplementationCopy,commonMainImplementationDependenciesMetadata,commonMainIntransitiveDependenciesMetadata,commonMainIntransitiveDependenciesMetadataCopy,commonMainRuntimeOnlyCopy,commonMainRuntimeOnlyDependenciesMetadata,commonTestCompileOnlyCopy,commonTestCompileOnlyDependenciesMetadata,commonTestIntransitiveDependenciesMetadata,commonTestIntransitiveDependenciesMetadataCopy,commonTestRuntimeOnlyCopy,commonTestRuntimeOnlyDependenciesMetadata,default,defaultCopy,jvmCompileOnlyCopy,jvmMainApiCopy,jvmMainCompileOnlyCopy,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationCopy,jvmMainImplementationDependenciesMetadata,jvmMainIntransitiveDependenciesMetadata,jvmMainIntransitiveDependenciesMetadataCopy,jvmMainRuntimeOnlyCopy,jvmMainRuntimeOnlyDependenciesMetadata,jvmRuntimeOnlyCopy,jvmSourceArtifactsCopy,jvmTestApiDependenciesMetadata,jvmTestCompileOnlyCopy,jvmTestCompileOnlyDependenciesMetadata,jvmTestIntransitiveDependenciesMetadata,jvmTestIntransitiveDependenciesMetadataCopy,jvmTestRuntimeOnlyCopy,jvmTestRuntimeOnlyDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinCompilerPluginClasspathCopy,kotlinNativeCompilerPluginClasspath,kotlinNativeCompilerPluginClasspathCopy,kotlinScriptDef,kotlinScriptDefCopy,kotlinScriptDefExtensions,kotlinScriptDefExtensionsCopy,metadataCommonMainCompileOnlyCopy,metadataCompileOnlyCopy,testKotlinScriptDef,testKotlinScriptDefCopy,testKotlinScriptDefExtensions,testKotlinScriptDefExtensionsCopy +org.jetbrains:annotations:16.0.2=koverJvmReporter +org.json:json:20210307=koverJvmReporter +empty=allSourceSetsCompileDependenciesMetadataCopy,allSourceSetsRuntimeDependenciesMetadataCopy,archives,archivesCopy,commonMainApiDependenciesMetadataCopy,commonMainCompileOnlyCopy,commonMainCompileOnlyDependenciesMetadata,commonMainImplementationCopy,commonMainImplementationDependenciesMetadata,commonMainIntransitiveDependenciesMetadata,commonMainIntransitiveDependenciesMetadataCopy,commonMainRuntimeOnlyCopy,commonMainRuntimeOnlyDependenciesMetadata,commonTestCompileOnlyCopy,commonTestCompileOnlyDependenciesMetadata,commonTestIntransitiveDependenciesMetadata,commonTestIntransitiveDependenciesMetadataCopy,commonTestRuntimeOnlyCopy,commonTestRuntimeOnlyDependenciesMetadata,default,defaultCopy,jvmCompileOnlyCopy,jvmMainApiCopy,jvmMainCompileOnlyCopy,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationCopy,jvmMainImplementationDependenciesMetadata,jvmMainIntransitiveDependenciesMetadata,jvmMainIntransitiveDependenciesMetadataCopy,jvmMainRuntimeOnlyCopy,jvmMainRuntimeOnlyDependenciesMetadata,jvmRuntimeOnlyCopy,jvmSourceArtifactsCopy,jvmTestApiDependenciesMetadata,jvmTestCompileOnlyCopy,jvmTestCompileOnlyDependenciesMetadata,jvmTestIntransitiveDependenciesMetadata,jvmTestIntransitiveDependenciesMetadataCopy,jvmTestRuntimeOnlyCopy,jvmTestRuntimeOnlyDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinCompilerPluginClasspathCopy,kotlinNativeCompilerPluginClasspath,kotlinNativeCompilerPluginClasspathCopy,kotlinScriptDef,kotlinScriptDefCopy,kotlinScriptDefExtensions,kotlinScriptDefExtensionsCopy,koverAggregatedSetup,metadataCommonMainCompileOnlyCopy,metadataCompileOnlyCopy,testKotlinScriptDef,testKotlinScriptDefCopy,testKotlinScriptDefExtensions,testKotlinScriptDefExtensionsCopy diff --git a/spackle-lib/build.gradle.kts b/spackle-lib/build.gradle.kts index 52e624c2..dca69202 100644 --- a/spackle-lib/build.gradle.kts +++ b/spackle-lib/build.gradle.kts @@ -2,6 +2,9 @@ plugins { kotlin("multiplatform") id("secant.kotlin-multiplatform-build-conventions") id("secant.dependency-conventions") + + id("org.jetbrains.kotlinx.kover") + id("secant.kover-conventions") } kotlin { diff --git a/spackle-lib/gradle.lockfile b/spackle-lib/gradle.lockfile index a65c31e4..3d75c55d 100644 --- a/spackle-lib/gradle.lockfile +++ b/spackle-lib/gradle.lockfile @@ -3,7 +3,11 @@ # This file is expected to be part of source control. junit:junit:4.13.2=commonTestImplementationCopy,jvmTestCompileClasspath,jvmTestImplementationCopy,jvmTestRuntimeClasspath net.java.dev.jna:jna:5.6.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.freemarker:freemarker:2.3.30=koverJvmReporter org.hamcrest:hamcrest-core:1.3=commonTestImplementationCopy,jvmTestCompileClasspath,jvmTestImplementationCopy,jvmTestRuntimeClasspath +org.jetbrains.intellij.deps:coverage-report:1.0.18=koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-agent:1.0.709=koverJvmAgent,koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-reporter:1.0.709=koverJvmReporter org.jetbrains.intellij.deps:trove4j:1.0.20200330=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:1.6.20=kotlinCompilerClasspathCopy org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.10=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath @@ -50,4 +54,6 @@ org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.1=commonTestImplementationCopy org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.2=commonTestImplementationCopy2 org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4=commonTestImplementationDependenciesMetadata,jvmTestCompileClasspath,jvmTestRuntimeClasspath org.jetbrains:annotations:13.0=commonTestImplementationCopy,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmRuntimeClasspath,jvmTestCompileClasspath,jvmTestImplementationCopy,jvmTestImplementationDependenciesMetadata,jvmTestRuntimeClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath -empty=allSourceSetsCompileDependenciesMetadataCopy,allSourceSetsRuntimeDependenciesMetadataCopy,archives,archivesCopy,commonMainCompileOnlyCopy,commonMainCompileOnlyDependenciesMetadata,commonMainImplementationCopy,commonMainImplementationDependenciesMetadata,commonMainIntransitiveDependenciesMetadata,commonMainIntransitiveDependenciesMetadataCopy,commonMainRuntimeOnlyCopy,commonMainRuntimeOnlyDependenciesMetadata,commonTestCompileOnlyCopy,commonTestCompileOnlyDependenciesMetadata,commonTestIntransitiveDependenciesMetadata,commonTestIntransitiveDependenciesMetadataCopy,commonTestRuntimeOnlyCopy,commonTestRuntimeOnlyDependenciesMetadata,compileClasspathCopy,default,defaultCopy,jvmApiCopy,jvmApiElementsCopy,jvmCompileClasspathCopy,jvmCompileOnlyCopy,jvmImplementationCopy,jvmMainCompileOnlyCopy,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationCopy,jvmMainImplementationDependenciesMetadata,jvmMainIntransitiveDependenciesMetadata,jvmMainIntransitiveDependenciesMetadataCopy,jvmMainRuntimeOnlyCopy,jvmMainRuntimeOnlyDependenciesMetadata,jvmRuntimeClasspathCopy,jvmRuntimeElementsCopy,jvmRuntimeOnlyCopy,jvmSourceArtifactsCopy,jvmTestApiDependenciesMetadata,jvmTestCompileOnlyCopy,jvmTestCompileOnlyDependenciesMetadata,jvmTestIntransitiveDependenciesMetadata,jvmTestIntransitiveDependenciesMetadataCopy,jvmTestRuntimeOnlyCopy,jvmTestRuntimeOnlyDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinCompilerPluginClasspathCopy,kotlinNativeCompilerPluginClasspath,kotlinNativeCompilerPluginClasspathCopy,kotlinScriptDef,kotlinScriptDefCopy,kotlinScriptDefExtensions,kotlinScriptDefExtensionsCopy,metadataApiCopy,metadataApiElementsCopy,metadataCommonMainApiCopy,metadataCommonMainCompileClasspathCopy,metadataCommonMainCompileOnlyCopy,metadataCommonMainImplementationCopy,metadataCompileClasspathCopy,metadataCompileOnlyCopy,metadataImplementationCopy,testKotlinScriptDef,testKotlinScriptDefCopy,testKotlinScriptDefExtensions,testKotlinScriptDefExtensionsCopy +org.jetbrains:annotations:16.0.2=koverJvmReporter +org.json:json:20210307=koverJvmReporter +empty=allSourceSetsCompileDependenciesMetadataCopy,allSourceSetsRuntimeDependenciesMetadataCopy,archives,archivesCopy,commonMainCompileOnlyCopy,commonMainCompileOnlyDependenciesMetadata,commonMainImplementationCopy,commonMainImplementationDependenciesMetadata,commonMainIntransitiveDependenciesMetadata,commonMainIntransitiveDependenciesMetadataCopy,commonMainRuntimeOnlyCopy,commonMainRuntimeOnlyDependenciesMetadata,commonTestCompileOnlyCopy,commonTestCompileOnlyDependenciesMetadata,commonTestIntransitiveDependenciesMetadata,commonTestIntransitiveDependenciesMetadataCopy,commonTestRuntimeOnlyCopy,commonTestRuntimeOnlyDependenciesMetadata,compileClasspathCopy,default,defaultCopy,jvmApiCopy,jvmApiElementsCopy,jvmCompileClasspathCopy,jvmCompileOnlyCopy,jvmImplementationCopy,jvmMainCompileOnlyCopy,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationCopy,jvmMainImplementationDependenciesMetadata,jvmMainIntransitiveDependenciesMetadata,jvmMainIntransitiveDependenciesMetadataCopy,jvmMainRuntimeOnlyCopy,jvmMainRuntimeOnlyDependenciesMetadata,jvmRuntimeClasspathCopy,jvmRuntimeElementsCopy,jvmRuntimeOnlyCopy,jvmSourceArtifactsCopy,jvmTestApiDependenciesMetadata,jvmTestCompileOnlyCopy,jvmTestCompileOnlyDependenciesMetadata,jvmTestIntransitiveDependenciesMetadata,jvmTestIntransitiveDependenciesMetadataCopy,jvmTestRuntimeOnlyCopy,jvmTestRuntimeOnlyDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinCompilerPluginClasspathCopy,kotlinNativeCompilerPluginClasspath,kotlinNativeCompilerPluginClasspathCopy,kotlinScriptDef,kotlinScriptDefCopy,kotlinScriptDefExtensions,kotlinScriptDefExtensionsCopy,koverAggregatedSetup,metadataApiCopy,metadataApiElementsCopy,metadataCommonMainApiCopy,metadataCommonMainCompileClasspathCopy,metadataCommonMainCompileOnlyCopy,metadataCommonMainImplementationCopy,metadataCompileClasspathCopy,metadataCompileOnlyCopy,metadataImplementationCopy,testKotlinScriptDef,testKotlinScriptDefCopy,testKotlinScriptDefExtensions,testKotlinScriptDefExtensionsCopy