I am accessing Jenkins build number in Gradle script by calling:
def buildNumber = System..getenv('BUILD_NUMBER')
It works fine the first time I run the build. The second time the build is run, the number is not incremented, it stays the same from previous build run. I am using 4.4.1 version of Gradle. I don't remember having the same problem with earlier versions.
My current workaround is to pass --no-daemon switch to Gradle. However, that way I am not able to benefit from daemon feature. Is there a way to use daemons ans still get the correct build number in Gradle build?
Are you using Java 9? With Java 9 it is not possible for Gradle anymore to modify the environment of the Daemon - so you cannot pass properties by using environment variables. You should see the following warning in your logs:
Warning: Unable able to set daemon's environment variables to match the client because:
Java 9 does not support modifying environment variables.
You can pass the 'BUILD_NUMBER'
as a system property (-DbuildNumber=$BUILD_NUMBER
) or a Gradle project property (-PbuildNumber=$BUILD_NUMBER
) from by the command line of Gradle instead.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With