Add build option to control Gradle parallelism.

Limit workers count, so when running tests parallel, they will not
compete over CPU usage.

^KT-45744 In Progress
This commit is contained in:
Yahor Berdnikau
2021-03-26 15:20:22 +01:00
committed by TeamCityServer
parent 3c78c94fb1
commit 93230d72f5
@@ -42,7 +42,9 @@ abstract class KGPBaseTest {
val kotlinVersion: String = KOTLIN_VERSION,
val warningMode: WarningMode = WarningMode.Fail,
val configurationCache: Boolean = false,
val configurationCacheProblems: BaseGradleIT.ConfigurationCacheProblems = BaseGradleIT.ConfigurationCacheProblems.FAIL
val configurationCacheProblems: BaseGradleIT.ConfigurationCacheProblems = BaseGradleIT.ConfigurationCacheProblems.FAIL,
val parallel: Boolean = true,
val maxWorkers: Int = (Runtime.getRuntime().availableProcessors() / 4 - 1).coerceAtLeast(2),
) {
fun toArguments(
gradleVersion: GradleVersion
@@ -67,6 +69,12 @@ abstract class KGPBaseTest {
arguments.add("-Dorg.gradle.unsafe.configuration-cache=$configurationCache")
arguments.add("-Dorg.gradle.unsafe.configuration-cache-problems=${configurationCacheProblems.name.toLowerCase()}")
}
if (parallel) {
arguments.add("--parallel")
arguments.add("--max-workers=$maxWorkers")
} else {
arguments.add("--no-parallel")
}
return arguments.toList()
}