Passing Configuration to a Gradle Build via Custom Environment Variables: Difference between revisions
Jump to navigation
Jump to search
Line 14: | Line 14: | ||
The method consists in defining a [[Gradle_Variables_and_Properties#Extra_Properties|project extra property]] that is initialized with the value of the custom environment variable, or to a default value if the environment variable is not defined. The following code sequence is added to build.gradle, in the [[Gradle_Variables_and_Properties#ext_Closure|ext closure]]: | The method consists in defining a [[Gradle_Variables_and_Properties#Extra_Properties|project extra property]] that is initialized with the value of the custom environment variable, or to a default value if the environment variable is not defined. The following code sequence is added to build.gradle, in the [[Gradle_Variables_and_Properties#ext_Closure|ext closure]]: | ||
<syntaxhighlight lang='groovy'> | |||
ext { | |||
projectExtPropertyInformedByEnvironmentVariable = "default value" | |||
String s = System.getenv("CUSTOM_ENVIRONMENT_VARIABLE"); | |||
if (s != null) { | |||
projectExtPropertyInformedByEnvironmentVariable = s; | |||
} | |||
} | |||
</syntaxhighlight> | |||
The following task displays the property value: | |||
<syntaxhighlight lang='groovy'> | |||
ask display { | |||
println projectExtPropertyInformedByEnvironmentVariable | |||
} | |||
</syntaxhighlight> | |||
If CUSTOM_ENVIRONMENT_VARIABLE is not set, executing the "display" task results in: | |||
gradle display | |||
> Configure project : | |||
default value | |||
BUILD SUCCESSFUL in 0s | |||
Setting the environment variable propagates it to the build: | |||
export CUSTOM_ENVIRONMENT_VARIABLE=BLAH | |||
gradle display | |||
> Configure project : | |||
BLAH | |||
BUILD SUCCESSFUL in 0s |
Revision as of 21:25, 14 March 2019
Internal
Overview
This article describes a generic method to pass configuration to a Gradle build using custom environment variables. This method could prove useful when Gradle builds are executed in containers, as it is the case for AWS CodeBuild builds.
Playground
Procedure
The method consists in defining a project extra property that is initialized with the value of the custom environment variable, or to a default value if the environment variable is not defined. The following code sequence is added to build.gradle, in the ext closure:
ext {
projectExtPropertyInformedByEnvironmentVariable = "default value"
String s = System.getenv("CUSTOM_ENVIRONMENT_VARIABLE");
if (s != null) {
projectExtPropertyInformedByEnvironmentVariable = s;
}
}
The following task displays the property value:
ask display {
println projectExtPropertyInformedByEnvironmentVariable
}
If CUSTOM_ENVIRONMENT_VARIABLE is not set, executing the "display" task results in:
gradle display
> Configure project : default value
BUILD SUCCESSFUL in 0s
Setting the environment variable propagates it to the build:
export CUSTOM_ENVIRONMENT_VARIABLE=BLAH gradle display
> Configure project : BLAH
BUILD SUCCESSFUL in 0s