Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to pass current BUILD_NUMBER to Gradle deamon from Jenkins build?

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?

like image 228
Dan Avatar asked Jan 02 '18 23:01

Dan


1 Answers

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.

like image 178
wolfs42 Avatar answered Sep 26 '22 11:09

wolfs42