Bamboo (software)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Bamboo Logo.png
Atlassian Bamboo
Developer(s) Atlassian
Initial release 20 February 2007
Stable release
5.12 / May 24, 2016; 4 months ago (2016-05-24)
Written in Java
Operating system Cross-platform
Type Continuous Integration
License Proprietary

Bamboo is a continuous integration server from Atlassian, the makers of JIRA, Confluence and Crowd. It is used to build, test and deploy applications automatically as per requirements and thus helps speed up the release process. Bamboo supports builds in a number of programming languages using various build tools and can also integrate with a large number of software for a variety of purposes.

Bamboo is free for open-source projects. Commercial organizations are charged based on the number of build agents needed.

In May 2016, The Register reported that "The move [to discontinue Bamboo in the cloud from 31st January, 2017] seems to spell the eventual end for Atlassian’s Bamboo tool as a separate cloud-based platform, though it will continue as a server product.".[1]



Bamboo can be installed on all major operating systems, that is, Windows, Mac OS and Linux. To install Bamboo go to the Atlassian website and follow the steps.[2]

Creating a project[edit]

The first step is creating a new Bamboo Project. Each Project consists of a number of Plans.[3] A Plan is a set of actions that Bamboo follows while building, testing and deploying an application. A Plan consists of Stages, Jobs and Tasks.[4]

Connecting the source repository[edit]

In this step, we specify the URL of our code repository and also give bamboo the necessary permissions to access our code.

Selecting triggers[edit]

There are different methods by which bamboo is prompted to run the build. Some of them are:

  • Whenever a change is made to the repository.
  • After specific intervals of time.
  • Manually

Configuring tasks in a plan[edit]

Each Plan can have multiple tasks configured. Some of the common tasks are:

  • A default task which checks out code from the repository.
  • A task for compiling the code(The Builder Task) and running test cases. We need to select a task depending on the build tool which our project is using.
  • A task for getting the results of the test run on the code.

Plans can be reviewed and changed by going to the Bamboo webpage for a particular project, then selecting Builds > All Build Plans.[5]

Running bamboo[edit]

The plan now needs to be enabled and created. Once you do this, Bamboo will perform a set of initial steps including checking out the source code, building it and running test cases on it. If all of this goes through successfully, it means that the set up has been done correctly and we can continue using Bamboo.


Bamboo divides the application in a hierarchical order.[4]


A Project is specific to an application and contains many plans in it. It has links to other applications as well.


A Plan contains the overall configuration for all the tasks being performed under it. It has information regarding:

  • The source code repository
  • The build triggers set up by the developer
  • Who can view/modify the plan
  • Plan variables

Initially, a plan has one stage, but multiple stages can be created by grouping together different jobs. All stages in a plan run sequentially. Starting from Bamboo 5, plans in Bamboo can now share build artifacts with each other.[3]


It has a single job initially but multiple jobs can be created under it by dividing the list of tasks into different jobs. Every stage must finish completely before moving on to the next stage. One of the reasons this is required is because at times, a stage may have a dependency on the previous stage in terms of certain artifacts.


Jobs in a stage are run in parallel. For example, we may want the functional and unit tests to run at the same time.[6] Each job can be assigned to a different agent. It performs a number of tasks on that agent. A job is assigned to an agent depending on its capacity to fulfill the requirements of the job. A job takes artifacts from previous stages, creates new ones, and also labels them.


It is the smallest unit of work that an agent does. Since all the tasks within a job are being performed on a single agent they need to be processed in a sequential order. Examples of a task include building a piece of code, deploying an application, etc.


  • Bamboo can run multiple builds in parallel which helps complete the task faster and thus speeds up the integration process.
  • In case of build failures, Bamboo can give you a detailed analysis of what went wrong, stack traces etc.[7]
  • Bamboo provides a Rest API to its users so that they can get information regarding the server, the current status of their builds, etc.[6]
  • Bamboo integrates closely with many software :
  • Build notifications can be customized based on the type of event, and received via The Wallboard, email, instant message, RSS,[10] or pop-up windows in Eclipse-based IDEs and IntelliJ IDEA.[7]
  • It can import data from Jenkins[11] for easy transition.


Some of the advantages of Bamboo over its contemporaries like Jenkins are that it has built-in Git Branching workflows and deployment projects. It also has built-in integration with other Atlassian softwares like Jira, Confluence, Bitbucket, HipChat etc[12] which are also widely used.

Some of the disadvantages are that it is not always free and that it is not an open source software. So the time taken for getting fixes on issues could be longer.

Detailed Comparison with other Continuous Integration software is available here.


External links[edit]