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, 188.8.131.52 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 184.108.40.206 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, 220.127.116.11).
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.