• Article
  • Feb.14.2019

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

  • Feb.14.2019
  • Reading time mins

Nowadays it is impossible to talk about software development without discussing DevOps, and Continuous Integration and Continuous Delivery are major points to consider, as their best practices can result in better deployment plans, fewer 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 the 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 set up 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

supported

x

Built-in deployment Projects

supported

x
Built-in Jira Software integration

supported

x
Built-in Bitbucket Server integration

supported

x
REST APIs

supported

supported

Test Automation

supported

via plugins
Easy Enterprise-grade permissions

supported

via plugins

 

G2Crowd has created a comparison based on user reviews for the 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 customers 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 great online documentation, offering clients the option to research and find a solution before reaching support for help.
  • Bamboo has 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 with this decision. As Atlassian Platinum Solution Partner, 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 you are 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 in touch with the Valiantys team who can assist you with licensing and deployment.

 

Let’s talk

Related resources

View all resources
chevron_right

Beyond IT: Empower excellent service for all teams

The majority of Service Management portals are created by non-IT teams. Discover how to empower excellent service for all teams.