Read versionName of build.gradle from Jenkins

扶醉桌前 提交于 2019-12-19 07:35:16

问题


I'm using Jenkins for my Android app builds. On every build, I get some info, like build number, etc...

I'm searching a way to read the versionName value of in the build.gradle when Jenkins build the job. I know we can get the buildNumber with the $BUILD_NUMBERenv variable, but how to get the versionName?


回答1:


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



回答2:


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}" ; 
   }


来源:https://stackoverflow.com/questions/40442615/read-versionname-of-build-gradle-from-jenkins

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!