Created
July 26, 2016 11:46
-
-
Save sgpopov/c40e861c48d0abc311d77003f1a7389c to your computer and use it in GitHub Desktop.
Revisions
-
sgpopov created this gist
Jul 26, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,21 @@ First you need to get used with some Bamboo concepts (also see the official [Atlassian Bamboo documentatiom](https://confluence.atlassian.com/bamboo/bamboo-documentation-home-289276551.html) ## Build plans and artifacts 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. ## Releases, deployment plans & environments 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.