First you need to get used with some Bamboo concepts (also see the official Atlassian Bamboo documentatiom
A build plan is the process that generates a Bamboo artifact. An artifact is something that can be deployed later, most of the time an executable or a jar file when you are talking about software that compiles, but for our sites this will simply be a compressed tarball file called site.tar.gz that contains the source code.
Build plans are composed of three pieces: Stages, Jobs and Tasks. If you look at the graph below it should be clear how those three fit inside each other:
- Stages execute sequentially (e.g. a Testing Stage, a Package Building stage). If phase x fails, the build process will halt and phases after x will not be executed.
- A stage consists of jobs that can be executed in parallel (e.g. multiple types of tests in a testing stages that can run at the same time)
- A job consists of multiple tasks that run sequentially. The first task will always be doign a source code checkout and then the next tasks use this checked out code to do some magic.
Now that we have a build plan that produces an artifact, our site.tar.gz file, we need to get that deployed to our servers. We can use releases and deployments plans to achieve that:
- Releases are simply tagged successful build plans. (e.g. build #65 has been tagged as v.2.2.3)
- A deployment plan is simply a list of environments.
- An environment has a list of tasks that will be executed sequentally to deploy a release's artifact to the environment.