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. Now 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.

Answers


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.


Need Your Help