Haut de page

Bamboo vs Jenkins: Which CI/CD tool to use?


Posted by
Douglas Fidelis

February 14, 2019

Nowadays it is impossible to talk about software development without discussing DevOps, and Continuous Integration and Continuous Delivery are a major points to consider, as their best practices can result in better deployment plans, less bugs in your releases, and quicker feedback from your processes.

What is the best way to have constant updates and release reliable versions? What tools should you use? These questions lead many teams to seek a Bamboo vs. Jenkins comparison – after all, isn’t that why you are on this page?

We’ll take an in-depth look at Atlassian’s Bamboo and Jenkins and define some of the differentiators as a Continuous Integration tool.

Bamboo Continuous Integration

In 2007, Atlassian announced the first release of Bamboo to jump into this emerging niche of market. What Bamboo brings is a powerful combination of organization, flexibility, easy GUI and CI/CD methodologies to deliver a great experience while creating your build and deployment plans. Atlassian Bamboo’s main goal is to help your software delivery to be flexible and strong (almost unbreakable) as a bamboo.

Bamboo takes place from code to deployment:

Here you can see how to organize your builds through a well-defined structure. On Bamboo you create plans (build or deploy), then set Stages, Jobs and Tasks – all very flexible and easy to setup via the UI.

Inside your Plan, you can have multiple Stages. According to Atlassian’s documentation, each Stage:

  • “Has a single Job by default, but can be used to group multiple Jobs,
  • Processes its Jobs in parallel, on multiple agents (where available),
  • Must successfully complete all its Jobs before the next stage in the plan can be processed,
  • May produce artifacts that can be made available for use by a subsequent Stage.”

 

 

Under Stages you have Jobs, that are a group of Tasks (your core items to be executed). According to Atlassian’s documentation, a Job:

  • “Processes a series of one or more Tasks that are run sequentially on the same agent,
  • Controls the order in which Tasks are performed,
  • Collects the requirements of individual tasks in the Job, so that these requirements can be matched with agent capabilities,
  • Defines the artifacts that the build will produce,
  • Can only use artifacts produced in a previous Stage,
  • Specifies any labels with which the build result or build artifacts will be tagged.”

 

 

Bamboo becomes stronger with its built-in integration with other Atlassian tools, such as Jira Software and Bitbucket Server. You can get visibility over code changes, build results and deployments details throughout the platforms.

For heavy usage you can take advantage of remote build agents, including elastic build agents (Amazon EC2), so you have distributed builds across multiple servers, reducing the wait time.

Key features include:

  • “Jira Software and Bitbucket Server integration for end-to-end visibility into release implementation, quality, and status.
  • Send a continuous flow of builds to test environments and automatically release builds to customers.
  • Impressive build agent management which allows you to scale build capacity by connecting servers on your network using Amazon EC2. You cal visualize system requirements for each build with the Agent Matrix feature, allowing you to assign builds to the right agents.
  • Automated merging between Git and Mercurial branches.
  • Just from the branch name, you can automatically detect, build, test, and merge branches to deploy code continuously to production or staging servers.
  • Support and resources are available for enterprise teams. “

Technical details on supported platforms include:

  • Bamboo runs on Java (currently supports Java 1.8)
  • OS supported:  Microsoft Windows, Linux, Solaris and MacOS / OSX
  • Databases supported: Mysql, Postgres, SQL Server and Oracle
  • Web Browsers supported: Firefox, Chrome, Safari, Microsoft Edge and IE 11
  • Source Repository: GIT, Mercurial, Subversion and Perforce
  • Docker for Mac / Linux (17 or later)

Jenkins Continuous Integration

First released back in 2004 (formerly named Hudson), Jenkins is one of the most popular CI tools available. Following the same idea of Bamboo, it tackles the CI/CD methodologies to allow teams to build, test and deploy quality software.

Jenkins is a free open source application. It has a huge community that helps to maintain and improve the application and its ecosystem. One of its advantages is it has hundreds of plugins, which allow customers to shape Jenkins to meet almost any desired CI/CD process.

This is an example of a scenario that can be achieved with Jenkins:

Key features include:

  • “Continuous Integration and Continuous Delivery. 
  • Easy installation. 
  • Easy configuration. 
  • Hundreds of plugins
  • Extensible via its plugin architecture
  • Can easily distribute work across multiple machines, helping drive builds, tests and deployments across multiple platforms.”

Jenkins also has built-in features like scripting directly on the UI to create/update tasks/pipelines. A cloud version is available.

Example of a configuration via inline scripting.

 

Here is an example of a Jenkinsfile using Declarative Pipeline syntax (definitions can be found on the previous link).

pipeline { 
    agent any 
    stages {
        stage('Build') { 
            steps { 
                sh 'make' 
            }
        }
        stage('Test'){
            steps {
                sh 'make check'
                junit 'reports/**/*.xml' 
            }
        }
        stage('Deploy') {
            steps {
                sh 'make publish'
            }
        }
    }
}

Technical details on supported platforms include:

  • OS supported:  Microsoft Windows, Linux, Solaris and MacOS
  • Web Browsers supported: Firefox, Chrome, Safari, Microsoft IE 11
  • Source Repository: CVS and Subversion, built-in support for Git, and also integrates with a large number of other version control systems via plugins.
  • Can be installed as a Docker Container

Bamboo vs. Jenkins: The comparison

Both applications are very powerful and offer a range of features:

BAMBOO

JENKINS

Built-in Git branching workflows

Check marksupported

x

Built-in deployment Projects

Check marksupported

x
Built-in Jira Software integration

Check marksupported

x
Built-in Bitbucket Server integration

Check marksupported

x
REST APIs

Check marksupported

Check marksupported

Test Automation

Check marksupported

via plugins
Easy Enterprise-grade permissions

Check marksupported

via plugins

G2Crowd has created a comparison based on user reviews for following points:

BAMBOO

JENKINS

Meets Requirements 8.8 8.9
Ease of Use 8.5 7.8
Ease of Setup 7.5 7.8
Ease of Admin 8.2 7.8
Quality of Support 8.2 7.6

As both tools aim for the same target and both deliver a high quality service, how can you know which tool is the best one for you? Take into consideration a few points:

  • Jenkins is an open source tool, while Bamboo is a commercial tool. Jenkins is a project supported by its global community, and Bamboo has its own dedicated team for its development.
  • Bamboo has a more user-friendly approach than Jenkins – as usually, open source apps are more concerned with other features.
  • Jenkins has a huge number of plugins to allow customer to achieve their goals, while Bamboo comes with most of the features built in and counts with hundreds of plugins available on Atlassian Marketplace.
  • Bamboo integrates seamlessly with the Atlassian suite, offering a great experience if you are already using Jira Software and Bitbucket.
  • Jenkins and Bamboo both have a great online documentation, offering clients the option to research and find a solution before reaching support for help.
  • Bamboo has a great professional support available for licensed customers, as well as online documentation and Atlassian community help. Jenkins has community support and you can get professional support from Cloudbees.
  • Bamboo is a paid tool and the price depends on your usage, based on how many remote agents you will need. Jenkins is a free tool.

It is a pretty tough decision to make, but we can help you on this decision. As Atlassian Platinum Solution Partners, we can show you all advantages of using Bamboo and how it can improve your dev team to get the most out of the Continuous Integration with Atlassian tools. Whether your a small development team or a giant operation with hundreds of builds on queue, we are sure that Bamboo can help make software delivered faster and with higher quality.

Want to try Bamboo? Get it touch with the Valiantys team who can assist you with licensing and deployment.