Jenkins share build number across jobs? -


we developing app multiple parallel streams of development. have jenkins job build each stream/release. job-a may building release 1.1, , job-b may building release 1.2.

i think best have build number shared across each release, such if job-a runs build number 125, if job-b runs next run build number 126. reason think best strategy android app, requires versioncode parameter incremented each time it's submitted google play. use jenkins build number versioncode value.

is there way configure jenkins share build number across multiple jobs? or, has come better solution problem?

short answer use timestamps or manually set versioncodes, keep things out of ci server when not necessary. or force jenkins build numbers.

long answer jenkins responsible automating works on own. if don't need jenkins setup, happy well.

also if use 2 branches, commit in random orders them. trying tie jobs in ways seems unnecessary trouble problem later on. e.g. if version 2.0 built , qaed now, waiting proper release date , marketing team complete job, need release v1.1.1 quick fix after ? depending on solution pick, may need trigger rebuilds force versioncode bump. new build, new qa ?

your real requirement versioncode higher previous release.

from http://developer.android.com/guide/topics/manifest/manifest-element.html

android:versioncode internal version number.

this number used determine whether 1 version more recent another, higher numbers indicating more recent versions. not version number shown users; number set versionname attribute. value must set integer, such "100". can define want, long each successive version has higher number. example, build number. or translate version number in "x.y" format integer encoding "x" , "y" separately in lower , upper 16 bits. or increase number 1 each time new version released.

so here 2 solutions:

  • manual bumping. in our projects, use sed scripts automate bumping of build number before release. need change few things hand, versionname prefix, disable/enable debugging mode during development, etc, manually run bumpversion script next build in branch has appropriate version , versioncode numbers. note use jenkins build number in versionname instead. solution prevents having 1.1.1 needs out after v2 ready problem if pick large enough versioncode bump v2.

  • another more automated yet still simple solution use out of timestamps. format yymmddhhss enough of integer (< 2^31), , chances whatever version going release next going prepared after previous 1 , not within same minute. when build v1.1, gets e.g. 1308131600 , if build v1.2 minute after gets 1308131601. (this doesn't against v1.1.1/v2 scenario)

here ideas scripts generate/update versioncode auto increment version code in android app.

the jenkins way

now if still want jenkins in charge, simple solution use https://wiki.jenkins-ci.org/display/jenkins/next+build+number+plugin , configure per branch jobs have large enough prefix ensure no clash. setup still pretty simple.

e.g.

  • 110000 branch 1.1
  • 120000 branch 1.2

Comments

Popular posts from this blog

ios - UICollectionView Self Sizing Cells with Auto Layout -

node.js - ldapjs - write after end error -

DOM Manipulation in Wordpress (and elsewhere) using php -