简体   繁体   中英

How to set android app version by number of build in Jenkins?

Application is automatically building by jenkins after successful push, but version is always 1.0. Instead of "0" I want to insert number of corresponding build in jenkins: 1.119, 1.120, 1.121...

That is my build.gradle file

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.2'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

build.sh

#!/bin/bash
gradle clean 
gradle build
#. run_android_ui_tests.sh

My gradle.properities contains only comments.

Problem solved by inserting these two strings into build.gradle's defaultConfig:

def env = System.getenv()
versionName "1." + env['BUILD_NUMBER']

instead of

versionName "1.0"

You have to make some preprocessing of your Manifest or build.gradle.

Fro example

  1. 1st build step is to run some script to paste version that you need.
  2. 2nd build step is to build you app.

I recommend you to get a system value that you can determine in each build you have, so you can change version of the app yourself in build configuration.

Best approach will be to use gradle release plugin for this. Using this you can do automatic version inclement version in your manifest file. You can have a look here

You can use it for tagging your source tree as well for different versions.

the configuration at the build.gradle should be

defaultConfig {
    ...

    versionName System.getenv("APP_VERSION") as String ?: "3.0.0 (Default)"

    ...
}

Jenkins Configuration for parse the build parameter

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM