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

Should I create a project, plan, stage, job or a task?

mikayil-abdullah May 22, 2019

In Bamboo, we have projects, then we have plans, then we have stages, each stage has a list of jobs and finally, each job has one or more tasks. I know that jobs can run in parallel, tasks in a job run sequentially and stages also take place one after another.  Now this gives us a lot of flexibility in terms of organizing our jobs. But besides providing this flexibility, is this classification meant to be so that each has it's own use case? Let me give you an example of a typical build process that we have: 

  Obviously, we have several git branches that correspond to different environments. 

  1. Check out the right branch from git repo
  2. Compile, run unit tests and package it with maven. This is done with a single command.
  3. Take the version of the artifact and keep it in a variable to use it in the later steps
  4. Build the docker image based on the Dockerfile that's found in the project root
  5. Run the image and push it to a kubernetes cluster.

Can you give an example on how to split this 5 step process into plans/stages/jobs/tasks. It's probably going to be in the same one plan. But again then, when do I create another plan. What's the use case for that? When do I create another project?

1 answer

1 accepted

1 vote
Answer accepted
Jimmy Seddon
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
May 22, 2019

Hi @mikayil-abdullah,

From what I have seen project are really good at grouping categories of plan together.  Plans are listed alphabetically so projects allow you to group plans that belong together into their own groupings.

As for when you would create additional plans really comes down to how you want and choose to use Bamboo.

We have a number of small git repos that each have their own plan and build an artifact.  We did it this way so that we are re-building the entire set of artifacts in the plan every time a change is made.  We only re-build what was changed.

We then have another build plan (that is a child plan of all the other build plans) that collects the latest built version of the artifacts and bundles them into a deployment package.

I hope that helps provide some insight, I'm not sure if it helped answer your question or not.


mikayil-abdullah May 22, 2019

You know, this question comes as a result of lack of enough CI/CD experience. Thanks for the answer

Like Jimmy Seddon likes this

Suggest an answer

Log in or Sign up to answer
AUG Leaders

Atlassian Community Events