Read versionName of build.gradle from Jenkins
You could do this by adding an Execute Shell step which determines the versionName
, and exporting it as an environment variable using the EnvInject Plugin.
Assuming your build.gradle
contains:
versionName = myname
You can add this script:
v=$(cat build.gradle | grep versionName | awk '{print $3}')
echo MY_VERSION_NAME=${v} > env.properties
A better way to do this is add a "printVersion" task in build.gradle. app/build.gradle
task printVersion{
doLast {
print android.defaultConfig.versionName + '-' + android.defaultConfig.versionCode
}
}
Test it with: ./gradlew -q printVersion
1.8-13
Then in jenkins pipeline, add a stage after git:
stage('printVersion') {
def versionInfo = sh (
script: './gradlew -q printVersion',
returnStdout: true
).trim()
echo "VersionInfo: ${versionInfo}"
//set the current build to versionInfo plus build number.
currentBuild.displayName = "${versionInfo}-${currentBuild.number}" ;
}