Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bamboo Build Plans vs Deployment Plans

I setup my team's continuous integration and delivery system in Bamboo before Bamboo had deployment plans. I have two projects, one for each product we have and within each project I have four plans:

  1. QA Build and Deploy (off a Testing branch in our repo)
  2. Staging Build and Deploy (off a Staging branch in our repo)
  3. Production Build and Deploy (off the default branch in our repo)
  4. Compile and Analyze:a build that runs on check-ins to our Testing branch that makes sure the code compiles and there aren't any StlyeCop or Code Analysis errors.

This is tenuous because any time I need to make a change to the build or deployment process I have to do it in eight plans (because we have two projects that each contain these four plans).

I'm imaging switching to one build plan with a deployment plan for each environment. My questions are:

  1. If my build builds for a specific environment (config transforms are specific to environment and dll's are built with specific environment variables like Targets and DefineConstants) how does each deployment plan have usable environment artifacts from the build?
  2. Do I need to build for every environment in my build plan?
  3. Do our branches corresponding to environments go away?
like image 372
Hungry Beast Avatar asked Oct 22 '25 19:10

Hungry Beast


1 Answers

Yes, switching to one build plan will definitely make the process easier.

  1. You need to add your branches in Bamboo plan (testing, staging, default...) Afterwards you can define different variables per branch. This will allow you to have different transforms for your build depending on a branch.

  2. Not necessary, if you need the build which is the same for several environments - you can just deploy it there.

  3. No, probably you would need to keep them (see 1.) if you want to have specific build for each environment. As soon as you have the build that is possible to deploy to any environment, then you can get rid of them.

Then you create 1 deployment plan for your project, add all environments you need and configure the specific trigger for each of them. For example: staging env - you change "Branch to trigger this deployment" to 'staging'

like image 92
Borys Kupar Avatar answered Oct 24 '25 20:10

Borys Kupar