diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ProjectIsolationIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ProjectIsolationIT.kt index 8d06fa2bcf1da..beedf962907fd 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ProjectIsolationIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ProjectIsolationIT.kt @@ -28,4 +28,20 @@ class ProjectIsolationIT : KGPBaseTest() { build(":main-project:compileKotlin") } } + + @DisplayName("project with buildSrc should be compatible with project isolation") + @GradleTestVersions( + minVersion = TestVersions.Gradle.G_7_4 + ) + @JvmGradlePluginTests + @GradleTest + fun testProjectIsolationWithBuildSrc(gradleVersion: GradleVersion) { + project( + projectName = "kt-63990-buildSrcWithKotlinJvmPlugin", + gradleVersion = gradleVersion, + buildOptions = defaultBuildOptions.copy(configurationCache = null) + ) { + build("tasks") + } + } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt index 77c6d84879028..2c0ba65d95573 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt @@ -24,7 +24,7 @@ data class BuildOptions( val stacktraceMode: String? = StacktraceOption.FULL_STACKTRACE_LONG_OPTION, val kotlinVersion: String = TestVersions.Kotlin.CURRENT, val warningMode: WarningMode = WarningMode.Fail, - val configurationCache: Boolean = false, + val configurationCache: Boolean? = false, //null value is only for cases, when project isolation is used without configuration cache. Otherwise Gradle runner will throw exception "The configuration cache cannot be disabled when isolated projects is enabled." val projectIsolation: Boolean = false, val configurationCacheProblems: BaseGradleIT.ConfigurationCacheProblems = BaseGradleIT.ConfigurationCacheProblems.FAIL, val parallel: Boolean = true, @@ -114,8 +114,10 @@ data class BuildOptions( WarningMode.None -> arguments.add("--warning-mode=none") } - arguments.add("-Dorg.gradle.unsafe.configuration-cache=$configurationCache") - arguments.add("-Dorg.gradle.unsafe.configuration-cache-problems=${configurationCacheProblems.name.lowercase(Locale.getDefault())}") + if (configurationCache != null) { + arguments.add("-Dorg.gradle.unsafe.configuration-cache=$configurationCache") + arguments.add("-Dorg.gradle.unsafe.configuration-cache-problems=${configurationCacheProblems.name.lowercase(Locale.getDefault())}") + } if (gradleVersion >= GradleVersion.version("7.1")) { arguments.add("-Dorg.gradle.unsafe.isolated-projects=$projectIsolation") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/build.gradle.kts new file mode 100644 index 0000000000000..d18c3d33a15e4 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/build.gradle.kts @@ -0,0 +1,2 @@ +plugins { +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/buildSrc/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/buildSrc/build.gradle.kts new file mode 100644 index 0000000000000..4912c7d9bee6e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/buildSrc/build.gradle.kts @@ -0,0 +1,9 @@ +plugins { + kotlin("jvm") +} + +repositories { + mavenLocal() + mavenCentral() + gradlePluginPortal() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/buildSrc/src/main/kotlin/my-conventions.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/buildSrc/src/main/kotlin/my-conventions.gradle.kts new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/StatisticsBuildFlowManager.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/StatisticsBuildFlowManager.kt index cc937c0841e34..cb436cc06cbb4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/StatisticsBuildFlowManager.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/StatisticsBuildFlowManager.kt @@ -72,7 +72,7 @@ internal class BuildFinishFlowAction : FlowAction