Bamboo (software)

Bamboo

Atlassian Bamboo
Developer(s) Atlassian
Initial release 20 February 2007
Stable release
5.12 / May 24, 2016 (2016-05-24)
Written in Java
Operating system Cross-platform
Type Continuous Integration
License Proprietary
Website www.atlassian.com

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]

Set-up

Installation

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

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

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

Selecting triggers

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

Configuring tasks in a plan

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

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

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.

Workflow

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

Project

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

Plan

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

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]

Stage

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.

Job

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.

Task

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.

Features

Comparisons

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.

References

External links

This article is issued from Wikipedia - version of the 11/7/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.