From e0cde101db0aaf93f3a27fca9a14c55170d52203 Mon Sep 17 00:00:00 2001 From: Salomon BRYS Date: Fri, 28 Jul 2023 17:12:50 +0200 Subject: [PATCH] Fixed Gradle plugin & updated Android tests --- .github/workflows/release.yml | 9 +-- .github/workflows/snapshot.yml | 9 +-- .github/workflows/test.yml | 9 +-- .../kodein/mock/gradle/MocKMPGradlePlugin.kt | 19 +++-- .../tests-android-old/build.gradle.kts | 69 ------------------ .../tests-android-old/gradle.properties | 5 -- .../tests-android-old/settings.gradle.kts | 44 ----------- .../src/androidMain/AndroidManifest.xml | 6 -- .../res/mipmap-xxxhdpi/ic_launcher.webp | Bin 3844 -> 0 bytes .../build.gradle.kts | 2 +- .../gradle.properties | 1 - .../settings.gradle.kts | 0 .../src/androidMain/AndroidManifest.xml | 0 .../res/mipmap-xxxhdpi/ic_launcher.webp | Bin 14 files changed, 18 insertions(+), 155 deletions(-) delete mode 100644 tests-projects/tests-android-old/build.gradle.kts delete mode 100644 tests-projects/tests-android-old/gradle.properties delete mode 100644 tests-projects/tests-android-old/settings.gradle.kts delete mode 100644 tests-projects/tests-android-old/src/androidMain/AndroidManifest.xml delete mode 100644 tests-projects/tests-android-old/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.webp rename tests-projects/{tests-android-new => tests-android}/build.gradle.kts (98%) rename tests-projects/{tests-android-new => tests-android}/gradle.properties (71%) rename tests-projects/{tests-android-new => tests-android}/settings.gradle.kts (100%) rename tests-projects/{tests-android-new => tests-android}/src/androidMain/AndroidManifest.xml (100%) rename tests-projects/{tests-android-new => tests-android}/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.webp (100%) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 468bdd7..dc00fde 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -68,14 +68,9 @@ jobs: working-directory: tests-projects/tests-jvm-junit5 run: ../../gradlew --stacktrace check shell: bash - - name: Check plugin with Android old layout (ubuntu) + - name: Check plugin with Android (ubuntu) if: matrix.os == 'ubuntu-latest' - working-directory: tests-projects/tests-android-old - run: ../../gradlew --stacktrace check - shell: bash - - name: Check plugin with Android new layout (ubuntu) - if: matrix.os == 'ubuntu-latest' - working-directory: tests-projects/tests-android-new + working-directory: tests-projects/tests-android run: ../../gradlew --stacktrace check shell: bash - name: Upload (macos / windows) diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index f2bed49..2b93882 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -66,14 +66,9 @@ jobs: working-directory: tests-projects/tests-jvm-junit5 run: ../../gradlew --stacktrace check shell: bash - - name: Check plugin with Android old layout (ubuntu) + - name: Check plugin with Android (ubuntu) if: matrix.os == 'ubuntu-latest' - working-directory: tests-projects/tests-android-old - run: ../../gradlew --stacktrace check - shell: bash - - name: Check plugin with Android new layout (ubuntu) - if: matrix.os == 'ubuntu-latest' - working-directory: tests-projects/tests-android-new + working-directory: tests-projects/tests-android run: ../../gradlew --stacktrace check shell: bash - name: Upload (macos / windows) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 68460ca..fdc6209 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,13 +52,8 @@ jobs: working-directory: tests-projects/tests-jvm-junit5 run: ../../gradlew --stacktrace check shell: bash - - name: Check plugin with Android old layout (ubuntu) + - name: Check plugin with Android (ubuntu) if: matrix.os == 'ubuntu-latest' - working-directory: tests-projects/tests-android-old - run: ../../gradlew --stacktrace check - shell: bash - - name: Check plugin with Android new layout (ubuntu) - if: matrix.os == 'ubuntu-latest' - working-directory: tests-projects/tests-android-new + working-directory: tests-projects/tests-android run: ../../gradlew --stacktrace check shell: bash diff --git a/mockmp-gradle-plugin/src/main/kotlin/org/kodein/mock/gradle/MocKMPGradlePlugin.kt b/mockmp-gradle-plugin/src/main/kotlin/org/kodein/mock/gradle/MocKMPGradlePlugin.kt index ad1c8f3..a15a182 100644 --- a/mockmp-gradle-plugin/src/main/kotlin/org/kodein/mock/gradle/MocKMPGradlePlugin.kt +++ b/mockmp-gradle-plugin/src/main/kotlin/org/kodein/mock/gradle/MocKMPGradlePlugin.kt @@ -92,15 +92,19 @@ class MocKMPGradlePlugin : Plugin { configureKsp(project, ext) - // Adding KSP JVM as a dependency to all Kotlin compilations - project.tasks.withType>().all { - if (name.startsWith("compile") && name.contains("TestKotlin")) { - when (jvmTarget.preset!!.name) { - "jvm" -> dependsOn("kspTestKotlin${jvmTarget.name.replaceFirstChar { it.titlecase() }}") - "android" -> dependsOn("kspDebugUnitTestKotlin${jvmTarget.name.replaceFirstChar { it.titlecase() }}") + // For some reason, the simple fact of calling `project.tasks.withType>()` + // breaks KSP if not set in a deep level of afterEvaluate :( + afterEvaluate { afterEvaluate { + // Adding KSP JVM as a dependency to all Kotlin compilations + project.tasks.withType>().all { + if (name.startsWith("compile") && name.contains("TestKotlin")) { + when (jvmTarget.preset!!.name) { + "jvm" -> dependsOn("kspTestKotlin${jvmTarget.name.replaceFirstChar { it.titlecase() }}") + "android" -> dependsOn("kspDebugUnitTestKotlin${jvmTarget.name.replaceFirstChar { it.titlecase() }}") + } } } - } + } } } } @@ -121,7 +125,6 @@ class MocKMPGradlePlugin : Plugin { SourceSetTarget.CommonMain -> executeOnMain(target, ext) SourceSetTarget.CommonTest_Via_JVM -> executeOnTests(target, ext) } - } } diff --git a/tests-projects/tests-android-old/build.gradle.kts b/tests-projects/tests-android-old/build.gradle.kts deleted file mode 100644 index 2f515c0..0000000 --- a/tests-projects/tests-android-old/build.gradle.kts +++ /dev/null @@ -1,69 +0,0 @@ -plugins { - alias(kodeinGlobals.plugins.android.library) - alias(kodeinGlobals.plugins.kotlin.multiplatform) - id("org.kodein.mock.mockmp") -} - -repositories { - mavenLocal() - google() - mavenCentral() -} - -android { - namespace = "org.kodein.mock.tests_android" - compileSdk = 32 - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - - defaultConfig { - minSdk = 21 - targetSdk = 32 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } -} - -kotlin { - android() - ios() - - sourceSets { - val commonMain by getting { - kotlin.srcDir("$rootDir/../../tests/tests-junit4/src/commonMain/kotlin") - dependencies { - implementation(libs.datetime) - } - } - val commonTest by getting { - kotlin.srcDir("$rootDir/../../tests/tests-junit4/src/commonTest/kotlin") - dependencies { - implementation(libs.coroutines.test) - } - } - - val androidTest by getting { - dependencies { - implementation(kodeinGlobals.kotlin.test.junit) - } - } - } -} - -mockmp { - usesHelper = true -} - -// Showing tests in Gradle command line -afterEvaluate { - tasks.withType { - testLogging { - events("passed", "skipped", "failed", "standard_out", "standard_error") - showExceptions = true - showStackTraces = true - } - } -} diff --git a/tests-projects/tests-android-old/gradle.properties b/tests-projects/tests-android-old/gradle.properties deleted file mode 100644 index 2614e75..0000000 --- a/tests-projects/tests-android-old/gradle.properties +++ /dev/null @@ -1,5 +0,0 @@ -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 - -android.useAndroidX=true -android.nonTransitiveRClass=true -kotlin.mpp.androidSourceSetLayoutVersion1.nowarn=true diff --git a/tests-projects/tests-android-old/settings.gradle.kts b/tests-projects/tests-android-old/settings.gradle.kts deleted file mode 100644 index 2d5c155..0000000 --- a/tests-projects/tests-android-old/settings.gradle.kts +++ /dev/null @@ -1,44 +0,0 @@ -pluginManagement { - repositories { - mavenLocal() - gradlePluginPortal() - google() - mavenCentral() - } - - resolutionStrategy.eachPlugin { - if (target.id.id == "org.kodein.mock.mockmp") { - val rx = Regex("version = \"(.+)\"") - val match = file("$rootDir/../../build.gradle.kts").useLines { lines -> - lines.mapNotNull { rx.matchEntire(it.trim()) }.firstOrNull() - } ?: error("Could not find parent project version") - val mockmpVersion = match.groupValues[1] - - useModule("org.kodein.mock:mockmp-gradle-plugin:$mockmpVersion") - } - } -} - -@Suppress("UnstableApiUsage") -dependencyResolutionManagement { - repositories { - mavenLocal() - mavenCentral() - maven(url = "https://raw.githubusercontent.com/kosi-libs/kodein-internal-gradle-plugin/mvn-repo") - } - - versionCatalogs { - create("kodeinGlobals") { - val rx = Regex("classpath\\(\"org.kodein.internal.gradle:kodein-internal-gradle-settings:(.+)\"\\)") - val match = file("$rootDir/../../settings.gradle.kts").useLines { lines -> - lines.mapNotNull { rx.matchEntire(it.trim()) }.firstOrNull() - } ?: error("Could not find parent KIGP version") - val kigpVersion = match.groupValues[1] - - from("org.kodein.internal.gradle:kodein-internal-gradle-version-catalog:$kigpVersion") - } - create("libs") { - from(files("../../gradle/libs.versions.toml")) - } - } -} diff --git a/tests-projects/tests-android-old/src/androidMain/AndroidManifest.xml b/tests-projects/tests-android-old/src/androidMain/AndroidManifest.xml deleted file mode 100644 index 1f323ca..0000000 --- a/tests-projects/tests-android-old/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/tests-projects/tests-android-old/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.webp b/tests-projects/tests-android-old/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.webp deleted file mode 100644 index aa7d6427e6fa1074b79ccd52ef67ac15c5637e85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3844 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