git - Increment Android build number in Continuous Integration -


i'm using android studio, gradle, git.

on every push master branch want build new app version that's uploaded alpha channel of google play store. need increase versioncode of app every build.

for seem have several choices:

  1. increase number during jenkins build , push changed file repo.
    • i don't idea of having build server doing pushes/commits.
  2. increasing number git hook.
    • i idea less use git modifying files. if i'm on vacation (in rest of team) ever find , know it?
  3. have file on server (which build server can access directly) wherin current version saved. gradle access it, increase & save again.
    • this seems 'fragile' @ least have easy 'increaseversion' task executed on server. , if breaks (if move servers or something) it's easy repair.

currently, 3 best.

does have definite way of doing it?

i use none of above — you, don't want alter repo each build, nor files.

jenkins has always-increasing value each build, exposed via build_number environment variable.

in gradle, generate versioncode value programmatically @ build time, using build_number value ensure versioncode higher previous build.

a snippet of build.gradle:

// used set package version name , version code ext.versionmajor = 1 ext.versionminor = 2  android {   defaultconfig {     versionname computeversionname()     versioncode computeversioncode()   } }  // return "1.2" in example def computeversionname() {     // basic <major>.<minor> version name     return string.format('%d.%d', versionmajor, versionminor) }  // return 120042 jenkins build #42 def computeversioncode() {     // major + minor + jenkins build number (where available)     return (versionmajor * 100000)              + (versionminor * 10000)              + integer.valueof(system.env.build_number ?: 0) } 

so need update 2 values @ top when making release build. other build types, can let gradle/jenkins automatically set versioncode , upload google play.

this means, alpha version listed on play store, or inspecting apk, can see straight away jenkins build came from, , there git commit.


Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -