mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-03-10 08:31:29 +00:00
Enable cache redirector for Junit5 tests.
^KT-47185 In Progress
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user