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:
- QA Build and Deploy (off a Testing branch in our repo)
- Staging Build and Deploy (off a Staging branch in our repo)
- Production Build and Deploy (off the default branch in our repo)
- 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:
- 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?
- Do I need to build for every environment in my build plan?
- Do our branches corresponding to environments go away?