Enable cache redirector for Junit5 tests.

^KT-47185 In Progress
This commit is contained in:
Yahor Berdnikau
2021-06-08 17:19:51 +02:00
committed by Space
parent 5d0abf0e33
commit e98de36aaa
2 changed files with 56 additions and 3 deletions

View File

@@ -219,9 +219,13 @@ val checkRepositories: TaskProvider<Task> = 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")

View File

@@ -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")