Read versionName of build.gradle from Jenkins

后端 未结 3 1016
一整个雨季
一整个雨季 2021-01-12 04:57

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 v

相关标签:
3条回答
  • 2021-01-12 05:18

    Example: gradle properties | grep "version" | awk '{print $2}'

    On jenkins:

    def versionInfo = sh (
      script: "gradle properties | grep 'version' | awk '{print $2}'",
      returnStdout: true
    ).trim()
    println versionInfo
    
    0 讨论(0)
  • 2021-01-12 05:28

    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
    
    0 讨论(0)
  • 2021-01-12 05:29

    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}" ; 
       }
    
    0 讨论(0)
提交回复
热议问题