Software:Bamboo

From HandWiki
Bamboo
Bamboo (software) logo.png
Developer(s)Atlassian
Initial release20 February 2007
Stable release
6.8 / February 5, 2019; 5 years ago (2019-02-05)
Written inJava
Operating systemCross-platform
TypeContinuous Integration; Continuous deployment
LicenseProprietary; free for open-source projects
Websitewww.atlassian.com

Bamboo is a continuous integration and continuous deployment server developed by Atlassian.[1] Although initially available both as an on-premises and cloud computing service, in May 2016 it was announced that the cloud version would be discontinued by end of January 2017.[2]

Workflow

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

Project

A project is specific to an application and can contain many plans. It has links to other applications as well.

Plan

A plan contains the overall configuration for all of 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.[4]

Stage

A stage has a single job initially but multiple jobs can be created under it by dividing the list of tasks (below) into different jobs. Every stage must finish completely before the plan moves 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, one may want the functional and unit tests to run at the same time.[5] 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

A task is the smallest unit of work that an agent does. Since all of 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

  • Bamboo can run multiple builds in parallel for faster completion
  • In case of build failures, Bamboo provides an analysis of the failure, including a stack trace[6]
  • Bamboo provides a REST API providing information regarding the server, the current status of their builds, etc.[5]
  • Bamboo integrates with some software projects:
  • Build notifications can be customized based on the type of event, and received via The Wallboard, email, instant message, RSS,[9] or pop-up windows in Eclipse-based IDEs and IntelliJ IDEA.[6]
  • It can import data from Jenkins.[10]

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 software like Jira, Confluence, Bitbucket, HipChat etc.[11] 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. Therefore, the time taken for getting fixes on issues could be longer.

References

  1. https://www.atlassian.com/software/bamboo
  2. "Bamboo Cloud EOL - Atlassian Documentation". https://confluence.atlassian.com/bamboocloud/bamboo-cloud-eol-827125716.html. 
  3. "Understanding the Bamboo CI Server - Atlassian Documentation". https://confluence.atlassian.com/bamboo/understanding-the-bamboo-ci-server-289277285.html. Retrieved 2017-09-06. 
  4. "Sharing artifacts between plans, and other best practices". http://blogs.atlassian.com/2013/10/sharing-artifacts-between-plans-and-other-best-practices/. Retrieved 2017-09-06. 
  5. 5.0 5.1 Pouclet, Romain. Pro iOS Continuous Integration. Apress, 2014. ISBN 1484201248. 
  6. 6.0 6.1 6.2 6.3 Ryan Cutter (2012-03-29). "Continuous Integration and Bamboo". http://www.blendedperspectives.com/wp-content/uploads/2014/04/Bamboo-and-CI-cutterryan.pdf. Retrieved 2017-09-06. 
  7. "Linking to source code repositories - Atlassian Documentation". https://confluence.atlassian.com/bamboo/linking-to-source-code-repositories-671089223.html. Retrieved 2017-09-06. 
  8. "Atlassian Bamboo - Automation Consultants - Platinum Solution Partner". http://www.automation-consultants.com/index.php/products/atlassian-products/atlassian-bamboo. Retrieved 2017-09-06. 
  9. "Getting feedback - Atlassian Documentation". https://confluence.atlassian.com/bamboo/getting-feedback-289276961.html. Retrieved 2017-09-06. 
  10. "Importing data from Jenkins - Atlassian Documentation". https://confluence.atlassian.com/bamboo/importing-data-from-jenkins-317949257.html. Retrieved 2017-09-06. 
  11. Atlassian. "Bamboo vs Jenkins Comparison". https://www.atlassian.com/software/bamboo/comparison/bamboo-vs-jenkins. Retrieved 2017-09-06. 

External links