diff --git a/gradle/cacheRedirector.gradle.kts b/gradle/cacheRedirector.gradle.kts index c256485b0a9..2453a1aded1 100644 --- a/gradle/cacheRedirector.gradle.kts +++ b/gradle/cacheRedirector.gradle.kts @@ -219,9 +219,13 @@ val checkRepositories: TaskProvider = tasks.register("checkRepositories") } } -tasks.named("checkBuild").configure { - dependsOn(checkRepositories) -} +tasks + .matching { + it.name == "checkBuild" + } + .configureEach { + dependsOn(checkRepositories) + } if (cacheRedirectorEnabled()) { logger.info("Redirecting repositories for $displayName") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt index 3bab8b9a8a0..a22d477e005 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt @@ -39,6 +39,7 @@ fun KGPBaseTest.project( projectPathAdditionalSuffix ) projectPath.addDefaultBuildFiles() + projectPath.enableCacheRedirector() if (addHeapDumpOptions) projectPath.addHeapDumpOptions() val gradleRunner = GradleRunner @@ -204,6 +205,54 @@ private fun Path.addDefaultBuildFiles() { } } +@OptIn(ExperimentalPathApi::class) +private fun Path.enableCacheRedirector() { + // Path relative to the current gradle module project dir + val redirectorScript = Paths.get("../../../gradle/cacheRedirector.gradle.kts") + assert(redirectorScript.exists()) { + "$redirectorScript does not exist! Please provide correct path to 'cacheRedirector.gradle.kts' file." + } + val gradleDir = resolve("gradle").also { it.createDirectories() } + redirectorScript.copyTo(gradleDir.resolve("cacheRedirector.gradle.kts")) + + resolve("gradle.properties") + .also { if (!it.exists()) it.createFile() } + .appendText( + """ + + cacheRedirectorEnabled=true + + """.trimIndent() + ) + + when { + resolve("build.gradle").exists() -> { + //language=Groovy + resolve("build.gradle").appendText( + """ + + allprojects { + apply from: "${'$'}rootDir/gradle/cacheRedirector.gradle.kts" + } + + """.trimIndent() + ) + } + resolve("build.gradle.kts").exists() -> { + //language=Groovy + resolve("build.gradle.kts").appendText( + """ + + allprojects { + apply(from = "${'$'}rootDir/gradle/cacheRedirector.gradle.kts") + } + + """.trimIndent() + ) + } + } +} + @OptIn(ExperimentalPathApi::class) private fun Path.addHeapDumpOptions() { val propertiesFile = resolve("gradle.properties")