Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Bambo: Deploy multiple servers

wcms April 30, 2013

Hey guys :)

We're using Adobe CQ as our CMS system, and have a lot of customizing (internal and external).

In order to make building and deploying easier, we'd like to use Bamboo for our Release Management (and it looks great so far :) ).

I've created a project containing 2 stages for test and production (each of it contains 2 tasks SVN checkout and Maven which builds & deploys the code).

We have to build & check out the code 3 times, because we have 3 servers to be deployed (Maven directly uploads the newly builded code to the CQ server). Is there a way to check the code out only once, and then just build it 3 times with maven?

One other thing which I'm not quite sure of how it works: Does Bamboo cache the version of the SVN from when it started. For example:

Imagine that I submitted changes to the code, and then executed the test stage in Bamboo (which builds the code and deploys it to the 3 servers). At this point I would start testing my changes in the browser. In the meanwhile, my colleague makes some changes at another part of the code, and starts a new test stage build. What happens when I successfully tested my changes and would now like to deploy it into production (using the production stage in Bamboo). Will the changes of my colleague also deploy to the production or can I be sure that only my changes will find their way to production?

I hope I could describe my problem as good as possible. If you have trouble understanding what I'm trying to say, please tell me, I'll try to formulate more clearly.

1 answer

0 votes
Marcin Gardias
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
May 9, 2013

The answer to the second question is: of course! :-) Bamboo resolves the repository revision before the first stage and ensures that all Jobs build the same codebase.

As for organizing the stages: key question is: are binaries you deploy to each server different? In other words: do you really need to rebuild before each deployment?

If they are not, then I think the best strategy is to use artifact passing. So in the first stage you build all the binaries and save them as Bamboo Artifacts. In the next stages you subscribe to those Artifacts, which allows you skip the checkout and build, you just need to deploy.

If you build different binaries in different stages (i.e. using different compiler switches or sth. like that) then I'm afraid there's not much to gain. Bamboo enforces working directory separation for different Jobs, so you need to get the source into your working dir somehow. While you could create an artifact containing source package I don't think that earns you a lot compared to simply checking out. (unless your SVN server is slow to respond for some reason)

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events