From 37d797577b21b6614dad7ee6143fa135f7d294af Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Tue, 19 Sep 2023 08:57:02 +0200 Subject: [PATCH] [Gradle] Test MPP with Configuration Cache and Precompiled Script Plugins ^KT-59042 Verification Pending --- .../kotlin/gradle/ConfigurationCacheIT.kt | 25 ++++++++++++++++++- .../build-logic/build.gradle.kts | 15 +++++++++++ .../build-logic/settings.gradle.kts | 0 ...convention-plugin-multiplatform.gradle.kts | 9 +++++++ .../build.gradle.kts | 10 ++++++++ .../lib/build.gradle.kts | 3 +++ .../lib/src/commonMain/kotlin/Foo.kt | 3 +++ .../settings.gradle.kts | 1 + 8 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build-logic/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build-logic/settings.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build-logic/src/main/kotlin/convention-plugin-multiplatform.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/lib/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/lib/src/commonMain/kotlin/Foo.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/settings.gradle.kts diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt index bc4f61b9728..730dc47bdb2 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt @@ -9,10 +9,10 @@ import org.gradle.api.logging.LogLevel import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.report.BuildReportType import org.jetbrains.kotlin.gradle.testbase.* +import org.jetbrains.kotlin.gradle.util.replaceText import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.io.TempDir import java.nio.file.Path -import kotlin.test.assertNotNull @DisplayName("Configuration cache") class ConfigurationCacheIT : AbstractConfigurationCacheIT() { @@ -108,6 +108,29 @@ class ConfigurationCacheIT : AbstractConfigurationCacheIT() { } } + @MppGradlePluginTests + @GradleTestVersions( + minVersion = TestVersions.Gradle.G_8_0 // configuration cache and precompiled script plugins fails on earlier versions + ) + @GradleTest + fun `test composite build with precompiled script plugins and multiplatform`(gradleVersion: GradleVersion) { + project("composite-build-with-precompiled-script-plugins", gradleVersion) { + settingsGradleKts.replaceText( + "pluginManagement {", + """ + pluginManagement { + includeBuild("build-logic") + """.trimIndent() + ) + subProject("build-logic").projectPath.addPluginManagementToSettings() + + testConfigurationCacheOf( + ":lib:transformCommonMainDependenciesMetadata", + checkUpToDateOnRebuild = false + ) + } + } + @OtherGradlePluginTests @DisplayName("with project using incremental kapt") @GradleTest diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build-logic/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build-logic/build.gradle.kts new file mode 100644 index 00000000000..695423d15ed --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build-logic/build.gradle.kts @@ -0,0 +1,15 @@ +plugins { + `kotlin-dsl` +} + +allprojects { + repositories { + mavenLocal() + mavenCentral() + } +} + +val kotlin_version by properties +dependencies { + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build-logic/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build-logic/settings.gradle.kts new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build-logic/src/main/kotlin/convention-plugin-multiplatform.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build-logic/src/main/kotlin/convention-plugin-multiplatform.gradle.kts new file mode 100644 index 00000000000..25c24e3f48f --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build-logic/src/main/kotlin/convention-plugin-multiplatform.gradle.kts @@ -0,0 +1,9 @@ +plugins { + kotlin("multiplatform") +} + +kotlin { + jvm() + linuxX64() + linuxArm64() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build.gradle.kts new file mode 100644 index 00000000000..f556befce79 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/build.gradle.kts @@ -0,0 +1,10 @@ +plugins { + kotlin("multiplatform").apply(false) +} + +allprojects { + repositories { + mavenLocal() + mavenCentral() + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/lib/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/lib/build.gradle.kts new file mode 100644 index 00000000000..e65b19dd2d2 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/lib/build.gradle.kts @@ -0,0 +1,3 @@ +plugins { + id("convention-plugin-multiplatform") +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/lib/src/commonMain/kotlin/Foo.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/lib/src/commonMain/kotlin/Foo.kt new file mode 100644 index 00000000000..9dd919514d6 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/lib/src/commonMain/kotlin/Foo.kt @@ -0,0 +1,3 @@ +fun foo() = "bar" + +fun main() = println(foo()) \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/settings.gradle.kts new file mode 100644 index 00000000000..8343583412a --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-precompiled-script-plugins/settings.gradle.kts @@ -0,0 +1 @@ +include(":lib") \ No newline at end of file