From 06fd7f8526bf3ab4b928ab5a21c891198cb01983 Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Thu, 10 Dec 2020 02:51:01 +0300 Subject: [PATCH] Build: Add helper to configure gradle test distribution --- buildSrc/build.gradle.kts | 1 + buildSrc/src/main/kotlin/testDistribution.kt | 27 ++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 buildSrc/src/main/kotlin/testDistribution.kt diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 145258fee11..2ae3bb8fe71 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -114,6 +114,7 @@ dependencies { implementation("gradle.plugin.org.jetbrains.gradle.plugin.idea-ext:gradle-idea-ext:0.5") implementation("org.gradle:test-retry-gradle-plugin:1.1.9") + implementation("com.gradle.enterprise:test-distribution-gradle-plugin:1.2.1") } samWithReceiver { diff --git a/buildSrc/src/main/kotlin/testDistribution.kt b/buildSrc/src/main/kotlin/testDistribution.kt new file mode 100644 index 00000000000..b773e1f27b5 --- /dev/null +++ b/buildSrc/src/main/kotlin/testDistribution.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +import com.gradle.enterprise.gradleplugin.testdistribution.TestDistributionExtension +import org.gradle.api.tasks.testing.Test +import org.gradle.internal.os.OperatingSystem + + +fun Test.configureTestDistribution(configure: TestDistributionExtension.() -> Unit = {}) { + val isTeamcityBuild = project.kotlinBuildProperties.isTeamcityBuild + val testDistributionEnabled = project.findProperty("kotlin.build.test.distribution.enabled")?.toString()?.toBoolean() + ?: isTeamcityBuild + + useJUnitPlatform() + extensions.configure(TestDistributionExtension::class.java) { + enabled.set(testDistributionEnabled) + maxRemoteExecutors.set(20) + if (isTeamcityBuild) { + requirements.set(setOf("os=${OperatingSystem.current().familyName}")) + } else { + maxLocalExecutors.set(0) + } + configure() + } +}