From 3273ee4519a48630a51e90482634aac0a5cd5a15 Mon Sep 17 00:00:00 2001 From: "Alexander.Likhachev" Date: Wed, 17 May 2023 14:48:32 +0200 Subject: [PATCH] [Build, IGS] Add a plugin-switch property The plugin is not being actually applied until the `kotlin.build.internal.gradle.setup` property is explicitly set to enable the plugin logic. #KTI-1223 Fixed --- .../src/main/kotlin/InternalGradleSetupSettingsPlugin.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/repo/gradle-settings-conventions/internal-gradle-setup/src/main/kotlin/InternalGradleSetupSettingsPlugin.kt b/repo/gradle-settings-conventions/internal-gradle-setup/src/main/kotlin/InternalGradleSetupSettingsPlugin.kt index 79630016735..66e1c561376 100644 --- a/repo/gradle-settings-conventions/internal-gradle-setup/src/main/kotlin/InternalGradleSetupSettingsPlugin.kt +++ b/repo/gradle-settings-conventions/internal-gradle-setup/src/main/kotlin/InternalGradleSetupSettingsPlugin.kt @@ -17,10 +17,15 @@ import java.net.UnknownHostException private const val DOMAIN_NAME = "kotlin-build-properties.labs.jb.gg" private const val SETUP_JSON_URL = "https://$DOMAIN_NAME/setup.json" +private const val PLUGIN_SWITCH_PROPERTY = "kotlin.build.internal.gradle.setup" + abstract class InternalGradleSetupSettingsPlugin : Plugin { private val log = Logging.getLogger(javaClass) override fun apply(target: Settings) { + // `kotlin-build-gradle-plugin` is not used here intentionally, as it caches properties, we don't want to cache them before modificaation + val shouldApplyPlugin = target.providers.gradleProperty(PLUGIN_SWITCH_PROPERTY).orElse("false").map(String::toBoolean) + if (!shouldApplyPlugin.get()) return // the plugin is disabled, do nothing at all val isTeamCityBuild = (target as? ExtensionAware)?.extra?.has("teamcity") == true || System.getenv("TEAMCITY_VERSION") != null if (isTeamCityBuild) { log.info("TeamCity build detected. Skipping automatic local.properties configuration")