From 8799b9b751be68fceb92ae6c4b732e3f3c92809a Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Fri, 26 Nov 2021 17:50:05 +0300 Subject: [PATCH] Build: Add auto-setup of JDKs for tests based on Gradle Java Toolchains --- buildSrc/src/main/kotlin/JvmToolchain.kt | 2 ++ buildSrc/src/main/kotlin/tasks.kt | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/buildSrc/src/main/kotlin/JvmToolchain.kt b/buildSrc/src/main/kotlin/JvmToolchain.kt index dcb81bad388..2e1a07abce9 100644 --- a/buildSrc/src/main/kotlin/JvmToolchain.kt +++ b/buildSrc/src/main/kotlin/JvmToolchain.kt @@ -26,6 +26,8 @@ enum class JdkMajorVersion( fun isMandatory(): Boolean = mandatory + val envName = name + companion object { fun fromMajorVersion(majorVersion: Int) = values().first { it.majorVersion == majorVersion } } diff --git a/buildSrc/src/main/kotlin/tasks.kt b/buildSrc/src/main/kotlin/tasks.kt index a4a2d04da5b..4ca88d7573f 100644 --- a/buildSrc/src/main/kotlin/tasks.kt +++ b/buildSrc/src/main/kotlin/tasks.kt @@ -248,6 +248,12 @@ fun Project.projectTest( project.providers.gradleProperty("kotlin.test.maxParallelForks").forUseAtConfigurationTime().orNull?.toInt() ?: forks.coerceIn(1, Runtime.getRuntime().availableProcessors()) } + + JdkMajorVersion.values().forEach { version -> + project.getToolchainLauncherFor(version).orNull?.let { + environment(version.envName, it.metadata.installationPath.asFile.absolutePath) + } + } }.apply { configure(body) } }