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.
- Check out the right branch from git repo
- Compile, run unit tests and package it with maven. This is done with a single command.
- Take the version of the artifact and keep it in a variable to use it in the later steps
- Build the docker image based on the Dockerfile that's found in the project root
- 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?