Bamboo vs Jenkins vs Travis - Full Comparison of Continuous Integration Tools
- Nazar A.
- 15min read
Agile software development demands frequent, iterative development cycles, where updated versions of an application are continuously developed, tested and evaluated. An unfortunate byproduct of this process is that as new versions are created, they can stray widely from the base code, leading to “integration hell” - a vicious cycle where it takes longer to reintegrate the new version than it took to develop it.
A practice called Continuous Integration seeks to resolve this issue by requiring that all developers’ working copies be merged to a shared server and tested several times a day. Three of the top Continuous Integration server applications available on the market today include Bamboo, Jenkins and Travis.
All three of these systems automate the release management process and present different approaches to the Continuous Integration/Continuous Delivery process. This article compares the three systems to assist organizations in choosing the best options for their unique needs.
Continuous Integration, Continuous Delivery and Continuous Deployment
DevOps is an Agile methodology term that refers to the collaboration between development staff and operations staff through all stages of the development lifecycle.
Jez Humble, defines DevOps as:
A cross-disciplinary community of practice dedicated to the study of building, evolving and operating rapidly-changing resilient systems at scale.Jez Humble, Co-author of the DevOps Handbook
Continuous Integration, Continuous Delivery and Continuous Deployment are all best practices within the DevOps universe.
Continuous Delivery is the practice of always maintaining software in a state ready to be deployed. That means that the software version has been tested and is ready to be pushed into production like environments. The benefits of continuous delivery include:
- Reduced Deployment Risk - With Continuous Delivery, you are deploying smaller changes, reducing the risk of large problems finding their way into production and making problems easier to find and fix.
- Visible Progress - The true measure of progress is functional software in production. Continuous Delivery helps to ensure that development is constantly making forward progression.
- User Feedback - As part of the DevOps practice, feedback from Operations/Users is critical. Continuous Delivery guarantees ongoing evaluation and feedback from users, leading to more meaningful improvements.
Continuous Integration denotes the practice of merging all the code versions from all developers into a central repository. The purpose of Continuous Integration is to avoid code conflicts in the future. In Continuous Integration, each time new code is introduced, automatic test scripts are run, and the responsible developer is notified if the tests indicate any problems. Continuous integration is required on multiple person development teams. By definition, Continuous Delivery requires that software be tested as it is released, therefore, Continuous Integration is a requirement of Continuous Delivery. The benefits of Continuous Integration include:
- Reduction in Integration issues.
- Bugs are detected early and are easier to track down due to smaller change sets.
- Saves time and money.
- Provides for continuous feedback.
- Encourages developers to create less complex, modular code.
- Encourages and enforces frequent testing.
- Promotes quality assurance.
Continuous Deployment is the practice of automatically deploying every change to production. This approach is often used in enterprise environments where the user is the actual tester. Continuous Integration is also a requirement for successful Continuous Deployment.
Bamboo, Jenkins and Travis, Continuous Integration Tools
The Continuous Integration philosophy consists of three pillars, automated testing, source version control and build automation. Source control version management is the most important pillar of continuous integration.
Source control version management is used to track software updates and resolve conflicts between edits made by different developers working on the same codebase. Automated testing is used to verify that new code has not caused issues with existing features. Builds represent a snapshot of the current release version of software.
Build automation refers to the automated process of compiling and packaging code and running automated tests. Continuous integration tools encapsulate and automate the three pillars of Continuous Integration; source version control, automated testing and build automation.
Bamboo, Jenkins and Travis are three leading Continuous Integration tools that offer different approaches to the Continuous Integration process. The tools differ in a number of ways including cloud vs. on premise deployments, integrations, features and others.
Bamboo CI is a proprietary Continuous Integration and Continuous Deployment tool developed by Atlassian. Within Bamboo, you have Projects, Plans, Stages and Jobs.
- Project - A Project refers to the building of an application. A project may have links to other applications as well.
Plans - Each software project in Bamboo will have one or more Plans. A Plan represents all the configuration settings for a Project including:
- The repository for source code.
- Build triggers created by the developer.
- Security settings dictating who has authorization to view or modify the plan.
Stage - Stages represent different steps in the development process such as compilation or deployment. Within a Stage, there are one or more jobs which can run serially or in parallel. There are three types of Stages.
- Normal - An automated group of jobs which must run successfully before the next Stage can run.
- Manual - A manual Stage must be triggered by a user before it runs.
- Final - A final Stage will run whether the preceding Stages run successfully or not.
- Jobs - A job represents a single build unit inside of a plan. A Stage may contain one or more jobs.
- Tasks - A task is the smallest unit of work within a job.
BambooCI originally provided both a cloud-based and on-premise version. As of 2017 however, the cloud-based version has been discontinued. Instead, Atlassian offers a separate cloud-based version through Bitbucket called Bitbucket Pipers. Some of the primary features of Bamboo include:
- Seamless integration with Atlassian tools such as Jira, Hipchat, Confluence and Bitbucket.
- Git Branching workflows.
- Works with Windows, Linux and Solaris.
- Works with Firefox, Chrome, Safari and Edge.
- Runs on Java.
- Supported Databases include - MySQL, Postgres, SQL Server and Oracle.
- Works with source repositories - GIT, Mercurial, Subversion and Perforce.
- Works with Docker for macOS/Linux.
Which companies use Bamboo CI
Some of the companies that use Bamboo CI, include:
What users say about Bamboo
Pros of Bamboo:
- Easily integrates with Bitbucket and Jira, two commonly used tools.
- Simple, easy to use interface.
- Easy to customize.
- Offers many levels of granularity.
- For organizations that have many projects, Bamboo allows visibility into all of the different jobs, tasks, etc.
Cons of Bamboo:
- Although Bamboo offers many levels of granularity, it is often unclear what levels of granularity should be used for what type of project. Difficult for Bamboo to determine the difference between a Job, Task and a Build.
- Much of its strength lies in its integration with other Atlassian products. If you don’t use those tools, then Bamboo’s strength is somewhat limited. Bamboo comes out of the box with integration to many Atlassian products. Outside of those products, integrations are limited.
- Cannot use If/Else statements in tasks. Conditional statements would allow Bamboo to run or skip over tasks when certain conditions are met. Can’t do this in Bamboo. The only option is to change all tasks to script tasks and have the condition in the script.
Jenkins is arguably the most popular Continuous Integration tool on the market today and is the oldest of the three CI products. Unlike Bamboo, Jenkins is a free and open source automation tool.
Jenkins began life at Sun Systems in 2004 as the Hudson Project. The name was later changed from the Hudson Project to Jenkins as a result of a dispute with Oracle in 2011.Some of the primary features of Jenkins include:
- Cloud and on-premise version available.
- Support for a wide range of plugins making it compatible with a variety of languages, version control systems and bug databases.
- Supports integration with Software Configuration Management (SCM) tools such as StarTeam, Subversion, CVS, Git, AccuRev and others. SCM tools are used to assist in build management, configuration control, process management and other tasks.
- Freestyle, Apache Ant and Apache Maven are build tools. Jenkins can be integrated with all three of these tools to create uniform build systems, saving time and effort on projects.
- Works with Windows, Ubuntu, Red Hat and macOS.
- Works with Chrome, Firefox, Internet Explorer.
- User Interface is customizable.
- Using CSS you can change the fonts, icons and add a custom logo.
- Can also add custom plugins.
- Master-Slave architecture supports distributed builds and reduces load on CI server.
- Works with libvirt, Kubernetes, Docker and other container systems.
- Includes a RESTful API making it compatible with cloud-based web services.
- Integrates with a variety of tools including Slack, Datadog, Azure DevOps, Datadog and others.
What Companies Use Jenkins CI
Companies that use Jenkins in their development stack include:
What Users say about Jenkins
Pros of Jenkins CI:
- Easy to use Automated Build Process.
- Good process control.
- Large Development community.
- Jenkins manages the entire deployment line, going through several different test types and deployments.
- Jenkins is very flexible
Cons of Jenkins CI:
- Not cloud-based and no native integration with cloud providers.
- Jenkins is very flexible, its great variety of plug-ins allow it to automate a wide variety of processes on many different platforms. However, this flexibility means that complex configurations are required to make it function properly and a great deal of expertise is needed.
- Requires developers to maintain infrastructure themselves.
- Jenkins UI was designed with the needs of experienced developers and organizations in mind. There are plugins available such as Blue Ocean which can make Jenkins more intuitive and user friendly.
- No authorization rules, can’t assign users or groups to specific jobs.
- Jenkins doesn’t provide good analytics. Jenkins doesn’t always make it easy to identify why builds did not complete.
Travis CI comes in both an open source and an on-premise, enterprise version. The open source version is free, but an enterprise plan must be purchased for on-premise deployment. The enterprise version can also be run on various cloud platforms such as AWS or container systems such as Docker or Kubernetes.
Travis CI can only be integrated with GitHub as a repository, while Jenkins and Bamboo can integrate with a variety of repository systems. Unlike Jenkins and Bamboo which are built in Java, Travis is built in Ruby. Also, unlike Jenkins and Bamboo, Travis CI comes with a free hosting service which means that developers don’t need to provide a CI server at an extra expense.
The cloud-based hosting service means that users are freed from all of the update, patching and other maintenance tasks. Testing can even be conducted simultaneously on Linux and macOS devices. Additional features of Travis include:
- Comes with a free hosting service.
- Open source and paid enterprise plan available.
- Some of the applications that Travis integrates with include:
- Amazon S3
What companies use Travis
Some of the companies that use Travis CI include:
What users Say about Travis
Pros of Travis:
- Nice, easy to use interface,
- Fast builds.
- GitHub Integration.
- Support for multiple Ruby Versions.
- Powerful deployment management and statistics.
- Good documentation.
- It is very simple to configure a range of environment versions and settings in a simple YAML file.
Cons of Travis CI:
- Compared to other CI, Travis is difficult to use for scheduling jobs.
- Travis doesn’t offer as many integrations as other CI.
- Although configuration is very flexible, it is harder to configure for very simple projects.
- Difficult to configure with other repositories.
- Only supports Linux and macOS.
BambooCI vs TravisCI vs JenkinsCI - Comparison
BambooCI vs TravisCI vs JenkinsCI - Features Comparison Table
|Feature||Bamboo CI||Jenkins CI||Travis CI|
|Plugins||Supports Atlassian Plugins (approx 200 total)||Supports over 1000 plugins||Not as many Plugins as Jenkins|
|Open source/Proprietary||Proprietary||Open source||Open source and Proprietary|
|Hosting||Internal||Internal and cloud-based||Free cloud-based Hosting, Supported by the Community. Enterprise version for on-premise hosting|
|Operating Systems Supported||Linux, Solaris, Windows||macOS, Red Hat, Ubuntu, Windows||Linux, macOS, Windows|
|Browsers Supported||Chrome, Edge Firefox, Safari||Chrome, Firefox, Internet Explorer||Chrome, Edge, Firefox, Safari|
|Price||Charges based on number of build agents starting at 10$. See Plans||Open source Free||Free for Open source projects. Charged for Enterprise/On-premise version. Starting from $63/month for hobbyists up to $448/month for Premium. (see Pricing Plans)|
|Interface||Easy to use and intuitive but customization is limited||User interface is difficult to use but very customizable||Nice easy to use interface|
|Setup Time||Of the three, Bamboo is the easiest to set up||Elaborate setup. Takes a long time compared to Travis and Bamboo.||Easy to set up with GitHub, difficult without GitHub.|
|Support||Great professional support||Extensive support from the community||Great support but depends on level required|
|Popularity Index||Least Popular Stack-267 Followers-170 Votes-11||Most Popular Stacks-12.8k Followers-9.7k Votes-2.1k||Middle Popularity Stacks-4.4k Followers-3.1k Votes-1.7k|
Bamboo vs Jenkins vs Travis: Main features compared
Bamboo, Jenkins and Travis all offer a wide variety of features, but each one differs in terms of extensibility, hosting and a variety of other factors.
Bamboo CI features
Bamboo at first glance, appears to be very feature rich. It supports almost any programming language, offers a very intuitive user interface and interfaces easily with other Atlassian products such as Jira, Confluence, Bitbucket and others. However, outside of the Atlassian products, Bamboo does not integrate with many other plugins, making it the least extensible of the three products.
Bamboo used to offer both a cloud hosted, named Bamboo Cloud, and on-premise version. However, after 2016, Atlassian discontinued Bamboo Cloud and began offering Bitbucket Pipelines as an alternative option. Bitbucket Pipelines is a cloud-based continuous integration server also created by Atlassian. Bitbucket Pipelines offers many of the same features as Bamboo, including integration with Atlassian products, the ability to build, test and deploy automatically as well as dashboard and reports. For more information on Bitbucket see Pipelines.
In terms of other features, Bamboo offers an excellent and intuitive user interface, which makes it relatively easy for new users to use Bamboo. Bamboo’s user interface is not as customizable as Jenkins and Travis. Atlassian does offer user interface plugins including a report module, web item module and others.
Jenkins CI features
Jenkins is the oldest of the three products and some users observe that it is showing its age. Jenkins has an older, less intuitive user interface. The plugin Blue Ocean however, provides a more updated user interface, making it easier for the entire development team to track the continuous delivery process. Jenkins is strictly open source, and can run on-premise or on cloud-based platforms such as AWS. Jenkins also runs on macOS, Windows and Unix operating systems.
Of the three products, Jenkins is the most extensible. It offers a huge library of over 1000 plugins, more than Travis and Bamboo and it can integrate with virtually any application development tool, including Docker and Kubernetes, right out of the box.
Jenkins’ biggest drawback is its complexity. It is difficult to set up and requires manual effort to monitor and upgrade the server and its plugins.
Travis CI Features
Travis, like Jenkins is an older CI tool. Travis runs on Linux, macOS and Windows. Travis offers two versions; Travis CI, a cloud-based version and Travis CI Enterprise, which can be run on-premises or on various cloud platforms such as AWS, Google, Azure and others. The cloud-based version, which is free, is supported by the Travis community, alleviating developers of all of the upgrade and support tasks. Travis CI Enterprise on the other hand is available for a monthly charge. With Travis CI Enterprise, the customer is responsible for the maintenance and upgrade tasks, but also gives the customer the ability to customize Travis according to the security and support requirements.
Travis CI which is hosted in the cloud, boasts the easiest set up procedure. All you need to do is sign up and add your project. Travis also connects easily with GitHub, a popular version control system.
Travis CI’s biggest drawbacks are that the only version control system it will integrate with is GitHub, while Bamboo integrates with a variety of version control systems like Git and Mercurial. Jenkins integrates with CVS, Subversion, Git and Mercurial right out of the box and will integrate with many more such as Perforce, Bitkeeper and others with the aid of a plugin. Travis CI’s other major drawback is that unlike Bamboo and Jenkins, Travis does not support continuous delivery.
Bamboo vs Jenkins vs Travis: Setup time
Of the three systems, Travis CI is the easiest and quickest to set up. Travis CI is entirely cloud-based, so all users need to do is sign up and set up their project.
Bamboo CI is also relatively easy to set up and is especially easy for those new to continuous integration.
Jenkins is the most difficult to set up and requires more manual customization than Bamboo and Travis. However, there is plenty of online documentation from the support community available to provide assistance.
Bamboo vs Jenkins vs Travis: Pricing Comparison
Each of the CI solutions offers different pricing options.
Bamboo CI Pricing
Of the three products, Bamboo is the most expensive. The price for Bamboo CI is based on agents or build slaves. Agents refer to the number of processes that can run concurrently. The total price for Bamboo CI is based on the user tier and the annual maintenance package (see table below). All user tiers include 12 months of maintenance, with the option to purchase an additional 12 month maintenance package. The maintenance includes technical support, software upgrades, patches, etc. (see Bamboo)
Bamboo CI Pricing Table
|User Tier||Price (software + 12 months service)||Additional 12 months maintenance|
|Unlimited local agents/0 remote agents||10$||10$|
|1 remote agent||$1,270.00||$635.00|
|5 remote agents||$3,480.00||$1,740.00|
|10 remote agents||$6,330.00||$3,165.00|
|25 remote agents||$12,650.00||$6,325.00|
|100 remote agents||$25,300.00||$12,650.00|
|250 remote agents||$63,250.00||$31,625.00|
Jenkins CI Pricing
The Jenkins software package is open source and always free. There is a large and active community available for support, but for dedicated support, there are a number of companies who will provide assistance at a cost based on the number of users or systems.
Travis CI Pricing
Travis CI offers 2 options; Travis CI, which is a free, open source cloud-based version and Travis CI Enterprise, which can be hosted on-premise.
Travis CI as a cloud-based version, also includes all upgrades, patches and maintenance for free as well. This means that not only is the software free, but users are also freed from the work of upgrading and patching the software at no charge.
Travis CI Enterprise can be hosted on-premise. The cost depends on the maximum number of concurrent jobs.
Travis CI Pricing Table
|Bootstrap||1 Concurrent job |
Unlimited build minutes
|Startup||2 Concurrent job |
Unlimited build minutes
|Small Business||5 Concurrent job |
Unlimited build minutes
|Premium||10 Concurrent job |
Unlimited build minutes
BambooCI vs JenkinsCI vs TravisCI: Support
Bamboo CI Support
Bamboo offers excellent support documentation and a variety of options for direct support from Atlassian.
Standard support for Bamboo is included in the price of the software maintenance package. This includes weekday support from 8am to 5pm. Priority and premier support which includes 24/7 support is available at an additional charge. (see Support)
Jenkins CI Support
As an open source product, there is plenty of free documentation online. There are also a number of companies that offer live support at a price, depending on the number of users, instances or other factors.
Travis CI Support
The community support for Travis CI, the free cloud-based version is limited compared to Jenkins, according to what users say. Travis CI Enterprise includes support in the monthly rate. For more details see their enterprise page.
BambooCI vs JenkinsCI vs TravisCI: Popularity index
The Popularity Index is based on the number of questions regarding Bamboo, Jenkins or Travis on Stack Overflow. The latest data shows the following:
Bamboo CI vs Jenkins CI vs Travis CI: Integrations with other tools
Bamboo, Jenkins and Travis all integrate with a variety of tools.Bamboo integrates with all of the Atlassian products, including Jira, GitLab and many others, offering approximately 200 integration options.
Jenkins leads the pack in terms of integration, offering well over 1000 systems that it can integrate with via plugins. This makes Jenkins incredibly versatile.
Travis also integrates with a wide variety of tools. A major drawback for Travis however, is that it will only integrate with GitHub for version control.
Bamboo vs Jenkins vs Travis - How to Choose
Bamboo, Jenkins and Travis are three of the more popular continuous integration systems on the market. The best choice for your projects depends on a number of factors including integrations, project size and hosting requirements.
When to choose Bamboo CI
Bamboo is an excellent choice if your company uses several Atlassian products and you want to integrate seamlessly. Bamboo is also an excellent choice for companies that don’t have a great deal of experience with continuous integration software. Bamboo is easy to set up right out of the box and offers a comprehensive support program. Atlassian offers two versions, Bamboo CI which can be hosted on premise and Bitbucket Pipelines which is a cloud-based version.
When to choose Jenkins CI
Jenkins is the best choice for large projects, distributed builds or if your company will require a product that can integrate with virtually any software development product on the market. Jenkins is not the best product if your development team is very new to continuous integration or if you don’t have resources to dedicate solely to setting up and monitoring Jenkins. In short, Jenkins is very extensible, but takes expertise to set up, monitor and support. There is a great deal of support information online however and there are companies like CloudBees which will provide support for a price.
When to choose Travis CI
For open source projects, where you need to test in a variety of environments, including different operating systems, mobile vs desktop, etc. Travis is the best choice. It offers a free, open source version based entirely in the cloud and an enterprise version which can be hosted on-premise. With Travis CI, all your team needs to do is sign up and create a project. Travis takes care of all of the upgrade, patching and other maintenance tasks. Best of all, it’s open source and free.
Travis also offers Travis CI Enterprise, which can be hosted on-premise or on cloud-based platforms such as AWS or in a container such as Dockers or Kubernetes. If your company uses GitHub for version control, Travis integrates seamlessly. However, if your company uses any version control system other than GitHub, Travis will not integrate with it.
Bamboo, Jenkins and Travis are all excellent products. Choosing the best product for your projects depends on the size of your projects, your hosting needs and the amount of time and effort you want to devote to setup, maintenance and support.
What is DeployPlace and Why should you use it?
DeployPlace is a deployment automation tool that makes complex deployments easy. You can deploy your applications from a Git repository or CI in minutes. Unlike other deployment tools, DeployPlace is completely transparent, showing you step-by-step changes in our live editor.
It also integrates seamlessly with most CIs. We support Jenkins, Travis and will support Bamboo in the near future. Our customizable deployment templates give you control over your sensitive parameters so you can be sure that everything goes according to plan. DeployPlace also offers an advanced dashboard for your applications that can provide monitoring, history of commits, auto-deploy on commit, and integration with services such as Slack, New Relic, and Sentry.
Tired of routine deployment tasks? Get Eearly Acess