If you are familiar with the concept of Continuous Integration we can agree that using it has become mandatory. There are many Continuous Integration tools out there, and in this article, we will go through some of the greatest tools available on the market and see how they fare.
After reading this list you will have a better understanding of what tools are available to you and choose the perfect tool for yourself.
On the other hand, if you are interested in mobile apps, there is a specific subset of tools that might suit you better, so check out our Top Mobile Continuous Integration Tools List.
So without further ado and in no particular order of importance, I present you the list of the top 8 Continuous Integration tools:
Buddy
Buddy is a modern and intuitive CI tool. By keeping the interface simple Buddy makes the user experience the top priority and the time you need to invest in learning the tool to the minimum (which is nice).
Wizard-like types of configurations make the tool easy to work with, and there is practically no need to read the documentation until you need to configure some of the more complex pipelines.
And what makes a modern CI tool? Variety of supported tools/integrations, fast build times, smart but flexible UI, different hosting options (cloud/on-premises), and configurable pricing plans. Buddy fulfills all the above and goes beyond.
Although some of the technologies we are going to mention are de facto standards these days, it is worth mentioning that Buddy supports Docker, Kubernetes, all the major frameworks, languages, and cloud providers, including PHP, Node, Python, .NET Core, and Rails, as well as AWS and Google Cloud services. You can also rely on Buddy to provide monitoring and notifications for your builds.
We’ve worked with many tools, and there’s a lot of great tools on this list, but in terms of how intuitive and up-to-date with modern trends they are, Buddy leads the way.
Verdict: The most modern and intuitive tool on the list, supports all the features you might need but doesn’t sacrifice either the flexibility or user experience in return.
Official website: Buddy
Availability: Free 7-day trial/paid plans
Platform: Hosted and On-premises Linux/Mac
TeamCity
TeamCity is the mature CI server, coming from the labs of the JetBrains company. JetBrains has established authority in the software development world, and developers all over the world use their tools like WebStorm and ReSharper.
TeamCity offers all the features in its free version, but it is limited to the 100 build configurations and 3 build agents. Additional build agents and build configurations need to be purchased. Recently JetBrains started offering a cloud trial of TeamCity where you can try it out for one project without the hassle of having to install it on-premises. It lasts 60 days and you can export the project afterward.
Out of the box, TeamCity works on many different platforms and has support for a wide variety of tools and frameworks. There are many publicly available plugins, developed both by JetBrains and third parties.
Despite being the Java-based solution, TeamCity offers the best .NET support among the tools on this list. There are also different enterprise packages, that scale by the number of agents your company needs.
You can find a great in-depth case study on TeamCity here on our blog.
Verdict: Great solution overall, but due to its complexity and price, better suited for enterprise needs.
Official website: TeamCity
Availability: Free for 3 agents and 100 build configurations and paid enterprise edition
Platform: Servlet container (On-premises), cloud trial
Jenkins
Jenkins is an open-source CI tool written in Java. It originated as the fork of Hudson when Oracle bought the Sun Microsystems. Jenkins is a cross-platform CI tool and it offers configuration both through GUI interface and console commands.
What makes Jenkins very flexible is the feature extension through plugins. Jenkins plugin list is very comprehensive and you can easily add your own. Besides extensibility, Jenkins prides itself on distributing builds and test loads on multiple machines. It is published under an MIT license so it is free to use and distribute.
Cloudbees also offers a hosted solution in the form of Jenkins in the Cloud.
Verdict: One of the best solutions out there, both powerful and flexible at the same time. The learning curve could be a bit steep, but if you need flexibility it very well pays off to learn how to use it.
Official website: Jenkins
Availability: Free
Platform: Cross-platform
Travis CI
Travis CI is one of the oldest hosted solutions out there and it has won the trust of many people. Although it’s mostly known for the hosted solution, it offers the on-premise version too in a form of an enterprise package.
Travis CI is free for all open source projects hosted on GitHub and for the first 100 builds otherwise. There are a few pricing plans you can choose from, the main difference being the number of concurrent builds you can run.
Builds are configured using the .travis.yml file which contains the build tasks that will be executed on running the build. It supports a variety of different languages and good documentation to back them up.
Verdict: A Mature solution that offers both hosted and On-premises variants, loved and used by many teams, very well documented.
Official website: Travis CI
Availability: Free for open-source plans and first 100 builds, paid plans for everything else
Platform: Hosted and On-premises
Bamboo
Atlassian is a company focused on providing tools for software development teams and you might know them by their tools like JIRA and Bitbucket. Bamboo originally offered both cloud and On-premises solutions, but in May 2016 the cloud version was discontinued in the favor of the Bitbucket pipelines (accessible through the left panel of your Bitbucket account).
By utilizing the power of Docker, Bitbucket Pipelines is offering very efficient and fast builds that and is rapidly growing and becoming a worthy successor to the Bamboo Cloud.
Bamboo is free to try for 30 days, and after that, there are two plans for small and growing teams. Being the Atlassian tool, it has the native support for JIRA and BitBucket and you can even import your Jenkins configurations into the Bamboo easily.
Verdict: Great On-premises CI tool that originally offered a Cloud solution too. Bitbucket Pipelines replaced the cloud solution. Pipelines is a modern and fast cloud CI tool integrated into Bitbucket. Has a free trial for 30 days, and paid plans after that.
Official website: Bamboo
Availability: Paid with a free trial
Platform: On-premises
GitLab CI
GitLab CI is an integral part of the open-source Rails project GitLab, which was brought to light by the company GitLab inc. It is hosted on GitLab.com, a free hosted service and it provides detailed git repository management with features like access control, issue tracking, code reviews, and much more.
GitLab CI integrates seamlessly with GitLab and it can easily hook projects using the GitLab API. GitLab runners that process builds are written in Go language and can run on Windows, Linux, OSX, FreeBSD, and Docker.
The official Go runner can run multiple jobs concurrently and has inbuilt Docker support. Gitlab CI comes with both the open-source GitLab Community Edition and with the GitLab Enterprise Edition.
Verdict: A Phenomenal hosted tool with an impressive list of features, offers both free and enterprise solutions.
Official website: GitLab CI
Availability: Free and paid with trial
Platform: Hosted and on-premises (can be hosted for you on Gitlab.com)
CircleCI
Another cloud alternative comes from a company with the same name. CircleCI currently only supports GitHub and the list of supported languages includes Java, Ruby/Rails, Python, Node.js, PHP, Haskell, and Scala.
What separates CircleCI from the other tools is the way they offer services. The main pricing block for the CircleCI is the “container”. One container is free and you can build as many projects on it as you need. Once you start adding more containers (at a fixed price each) you can choose the level of parallelization that suits your needs.
There are 5 levels of parallelization (1x, 4x, 8x, 12x, and 16x). So, starting with the 16 containers, you can achieve maximum parallelization of 16x on one build. Or you can run 4 builds on 16 containers with 4x parallelization. It is up to you.
And did I mention CircleCI supports Docker?
Verdict: Flexible cloud CI tool that offers parallelization up to 16x. Excellent if you need something built fast and money is not the biggest issue (can reach up to $3150/mo).
Official website: CircleCI
Availability: Free and paid with trial
Platform: Hosted
Codeship
If you haven’t had enough hosted solutions up until now, here is another one.
Codeship comes in two different versions: Basic and Pro. The basic version offers an out-of-the-box Continuous Integration service but doesn’t have docker support and its main purpose is to build applications with common workflows through the UI. The Pro version offers more flexibility and docker support.
The basic version comes in several paid packages, where the more expensive ones have more parallelization power. In the pro version, you get to choose your instance type and the amount of parallelization up to 20x). It can get a bit pricey, but some teams may need that kind of power.
Verdict: Powerful hosted solution with docker support, flexible plans suited both for small teams and enterprises alike.
Official website: Codeship
Availability: Free for 100 builds per month and paid for more than that
Platform: Hosted
Honorable mention: Codefresh
Many tools on this list have Docker support, but Codefresh was designed and built from the ground up specifically with the containers in mind.
Docker can be a bit overwhelming to figure out at first, and the guys from Codefresh inc. are well aware of that. In addition to working with existing docker files, you can choose from several different templates to ease the migration of your project to Docker containers. UI is clean and intuitive, there is almost no need to parse through the documentation to start using it.
The reason this CI tool deserves to be on the list lies in a feature that surprised me a bit. And that feature is launching your images to a stage-like environment. When the build finishes, you can launch the image to see if it works! That effectively means you get a staging environment without a need to provision additional virtual machines or deploy anything. And that’s great!
Codefresh is still very young and has room for improvement and new features, (eg. .NET core template and more deployment options), but it treats containers as a first-class citizen and that makes it an ideal solution for any team that plans to utilize Docker.
Verdict: Easy to use tool with Docker containers at its core and a very nice feature of launching the built Docker images to the hosted environment.
Official website: Codefresh
Availability: Free for 200 builds per month, 5 concurrent builds, and 1 hosted environment, paid for additional stuff
Platform: Hosted and On-Premises via Kubernetes and Helm Charts
So, What Is the Perfect Continuous Integration Tool for You and Your Team?
There are several things to keep in mind when choosing the right CI tool for your projects.
On-premises solutions offer a great deal of build process flexibility and store the artifacts locally. This may or may not be important to you, but in some cases and for some companies, it might be mandatory.
On the other hand, the hosted solutions offer no-hassle setup and greater scalability since you don’t need hardware to host them.
Another important thing is Docker support. Docker revolutionized the way we distribute our apps and has become something you should not ignore. Although the vast majority of the tools support Docker, some take it more seriously than others.
And the last and often neglected aspect is the user interface. I found some of the tools from the list much easier to use than others. You cannot say with the clear consciousness that UI is not important because one of the main roles of any good CI tool is to make a build process easier. It should not be hard or complicated.