Bamboo to Build Specific SVN Revision
Imagine there's a project in Bamboo with two build plans: Staging Deployment (SD) and Production Deployment (PD). Building SD checks out latest sources, builds them and deploys a web site to a staging server. Currently, PD does all the same, namely deploys the latest version of a web site to a production server. Clearly, this is not very good: I want to be able to deploy the same exact version of a web site that was previously deployed on a staging server, not the latest one.
To illustrate: suppose we're at r101
in SVN repo. Clicking "Build SD" will deploy a web site version, say, 2.1.0.101
to staging server. Now we commit a breaking change and end up at r102
. N开发者_Python百科ow I want to deploy to a production server. If I hit "Build PD", Bamboo will happily check out r102
and build it, resulting in version 2.1.0.102
being deployed to a production server.
What I want it to do, however, is to build and deploy a version which was previously built in an SD plan (that is, 2.1.0.101
).
Of course I can make SD plan to tag latest-successful build as tags/builds/latest
, but I would rather have Bamboo itself handle that.
From your build command, you can specify the revision to use with the option custom.svn.revision.number
. So, it'll be something like -Dcustom.svn.revision.number=101
into the PD plan's configuration.
Note: You need Bamboo v1.1 or later for this.
What I ended up doing is tagging each successful staging deployment with a well-known tag (like, `/tags/project-latest') and then building production build from that tag.
精彩评论