diff --git a/build.gradle.kts b/build.gradle.kts index ae234547..1bf807db 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -170,7 +170,6 @@ val copyGradleScripts by tasks.registering(Sync::class) { from(develocityInjectionResolvable) { rename { "develocity-injection.gradle" } into("lib/scripts/gradle-init-scripts") - filter(TransformDevelocityInjectionScript()) } from(layout.projectDirectory.dir("components/scripts")) { include("README.md") diff --git a/buildSrc/src/main/kotlin/TransformDevelocityInjectionScript.kt b/buildSrc/src/main/kotlin/TransformDevelocityInjectionScript.kt deleted file mode 100644 index 3124ca2d..00000000 --- a/buildSrc/src/main/kotlin/TransformDevelocityInjectionScript.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Transforms usages of 'System.getProperty' in the Develocity injection script - * to 'gradle.startParameter'. This is required because 'System.getProperty' - * cannot be used to reliably read system properties from init scripts in Gradle - * 7.0.2 and earlier. -*/ -class TransformDevelocityInjectionScript : (String) -> String { - - override fun invoke(content: String): String { - return content - .replace("static getInputParam(String name) {", "def getInputParam = { String name ->") - .replace("System.getProperty(name)", "gradle.startParameter.systemPropertiesArgs[name]") - - // The 'getInputParam' method is no longer static so it must be redefined within the - // 'enableDevelocityInjection' method - .replace("void enableDevelocityInjection() {", """ - void enableDevelocityInjection() { - def getInputParam = { String name -> - def ENV_VAR_PREFIX = '' - def envVarName = ENV_VAR_PREFIX + name.toUpperCase().replace('.', '_').replace('-', '_') - return gradle.startParameter.systemPropertiesArgs[name] ?: System.getenv(envVarName) - } - - """.trimIndent()) - } - -} diff --git a/components/scripts/gradle/gradle-init-scripts/configure-build-validation.gradle b/components/scripts/gradle/gradle-init-scripts/configure-build-validation.gradle index 24b1e84b..0401778b 100644 --- a/components/scripts/gradle/gradle-init-scripts/configure-build-validation.gradle +++ b/components/scripts/gradle/gradle-init-scripts/configure-build-validation.gradle @@ -1,10 +1,10 @@ import org.gradle.util.GradleVersion import java.nio.charset.StandardCharsets -def getInputParam = { String name -> +static getInputParam(Gradle gradle, String name) { def ENV_VAR_PREFIX = '' def envVarName = ENV_VAR_PREFIX + name.toUpperCase().replace('.', '_').replace('-', '_') - return gradle.startParameter.systemPropertiesArgs[name] ?: System.getenv(envVarName) + return gradle.startParameter.systemPropertiesArgs[name] ?: System.getProperty(name) ?: System.getenv(envVarName) } def isTopLevelBuild = !gradle.parent @@ -17,10 +17,10 @@ def GRADLE_ENTERPRISE_PLUGIN_ID = 'com.gradle.enterprise' def DEVELOCITY_PLUGIN_ID = 'com.gradle.develocity' def CCUD_PLUGIN_ID = 'com.gradle.common-custom-user-data-gradle-plugin' -def expDir = getInputParam('develocity.build-validation.expDir') -def expId = getInputParam('develocity.build-validation.expId') -def runId = getInputParam('develocity.build-validation.runId') -def scriptsVersion = getInputParam('develocity.build-validation.scriptsVersion') +def expDir = getInputParam(gradle, 'develocity.build-validation.expDir') +def expId = getInputParam(gradle, 'develocity.build-validation.expId') +def runId = getInputParam(gradle, 'develocity.build-validation.runId') +def scriptsVersion = getInputParam(gradle, 'develocity.build-validation.scriptsVersion') def atLeastGradle5 = GradleVersion.current() >= GradleVersion.version('5.0') @@ -36,11 +36,12 @@ def registerBuildScanActions = { def buildScan, def rootProjectName -> // safely for Gradle 7.0.2 and earlier, and we must do so anyway because referencing a Gradle // script object, e.g., 'gradle.startParameter', from a Groovy closure is not compatible with // configuration cache - def getRunNumInputParam = { String name -> - def envVarName = name.toUpperCase().replace('.', '_').replace('-', '_') + def getInputParam = { String name -> + def ENV_VAR_PREFIX = '' + def envVarName = ENV_VAR_PREFIX + name.toUpperCase().replace('.', '_').replace('-', '_') return System.getProperty(name) ?: System.getenv(envVarName) } - def runNum = getRunNumInputParam('develocity.build-validation.runNum') + def runNum = getInputParam('develocity.build-validation.runNum') def buildScanUri = publishedBuildScan.buildScanUri def buildScanId = publishedBuildScan.buildScanId def port = (buildScanUri.port != -1) ? ':' + buildScanUri.port : '' diff --git a/components/scripts/gradle/gradle-init-scripts/configure-local-build-caching.gradle b/components/scripts/gradle/gradle-init-scripts/configure-local-build-caching.gradle index 5695e583..a2f52b56 100644 --- a/components/scripts/gradle/gradle-init-scripts/configure-local-build-caching.gradle +++ b/components/scripts/gradle/gradle-init-scripts/configure-local-build-caching.gradle @@ -1,10 +1,10 @@ -def getInputParam = { String name -> +static getInputParam(Gradle gradle, String name) { def ENV_VAR_PREFIX = '' def envVarName = ENV_VAR_PREFIX + name.toUpperCase().replace('.', '_').replace('-', '_') - return gradle.startParameter.systemPropertiesArgs[name] ?: System.getenv(envVarName) + return gradle.startParameter.systemPropertiesArgs[name] ?: System.getProperty(name) ?: System.getenv(envVarName) } -def expDir = getInputParam('develocity.build-validation.expDir') +def expDir = getInputParam(gradle, 'develocity.build-validation.expDir') settingsEvaluated { settings -> settings.buildCache { diff --git a/components/scripts/gradle/gradle-init-scripts/configure-remote-build-caching.gradle b/components/scripts/gradle/gradle-init-scripts/configure-remote-build-caching.gradle index ab461ddb..fff09597 100644 --- a/components/scripts/gradle/gradle-init-scripts/configure-remote-build-caching.gradle +++ b/components/scripts/gradle/gradle-init-scripts/configure-remote-build-caching.gradle @@ -1,10 +1,10 @@ -def getInputParam = { String name -> +static getInputParam(Gradle gradle, String name) { def ENV_VAR_PREFIX = '' def envVarName = ENV_VAR_PREFIX + name.toUpperCase().replace('.', '_').replace('-', '_') - return gradle.startParameter.systemPropertiesArgs[name] ?: System.getenv(envVarName) + return gradle.startParameter.systemPropertiesArgs[name] ?: System.getProperty(name) ?: System.getenv(envVarName) } -def remoteBuildCacheUrl = getInputParam('develocity.build-validation.remoteBuildCacheUrl') +def remoteBuildCacheUrl = getInputParam(gradle, 'develocity.build-validation.remoteBuildCacheUrl') settingsEvaluated { settings -> settings.buildCache {