“Quality at Speed” is the new norm in software development.
Enterprises are making their moves toward DevOps methodologies and Agile culture to accelerate the delivery speed and ensure product quality. In DevOps, a continuous and automated delivery cycle is the backbone that makes fast and reliable delivery possible.
This results in the need for proper continuous integration and continuous delivery (CI/CD) tools. A “good” CI/CD tool can leverage teams’ current workflow, to best exploit the automation feature and create a solid CI/CD pipeline, and give teams the boost they need to thrive. If you are new to CI/CD, please check out this blog.
With the overflowing number of CI/CD tools available in the market, teams may struggle to have to make difficult decisions to pick out the right tools. This list contains the “Best 14 CI/CD tools in the market”, along with their key features, to make the selection process easier for you and your team.
Top 5 CI/CD tools in 2019
Another important criterion of a quality CI/CD tool is its ability to integrate with continuous testing software. Katalon Studio – an automated and continuous testing solution – can integrate with the most common CI/CD tools in the industry. With native built-in integrations, you can use Katalon Studio to create, plan, execute automated tests, analyze reports, and integrate with your desired CI/CD pipeline.
Jenkins is an open-source automation server in which the central build and continuous integration process take place. It is a self-contained Java-based program with packages for Windows, macOS, and other Unix-like operating systems. With hundreds of plugins available, Jenkins supports building, deploying, and automating for software development projects.
Jenkins key features:
- Easy installation and upgrade on various OSs
- Simple and user-friendly interface
- Extensible with huge community-contributed plugin resource
- Easy environment configuration in the user interface
- Supports distributed builds with master-slave architecture
- Build schedules based on expressions
- Supports shells and Windows command execution in pre-build steps
- Supports notification on the build status
License : Free. Jenkins is an open-source tool with an active community.
CircleCI is a CI/CD tool that supports rapid software development and publishing. CircleCI allows automation across the user’s pipeline, from code building, testing to deployment.
You can integrate CircleCI with GitHub, GitHub Enterprise, and Bitbucket to create builds when new code lines are committed. CircleCI also hosts continuous integration under the cloud-managed option or runs behind a firewall on private infrastructure.
CircleCI key features:
- Integrates with Bitbucket, GitHub, and GitHub Enterprise
- Runs builds using a container or virtual machine
- Easy debugging
- Automated parallelization
- Quick tests
- Personalized email, and IM notifications
- Continuous and branch-specific deployment
- Highly customizable
- Automated merging and custom commands for package uploading
- Fast setup and unlimited builds
License : Linux plans start with the option to run one job without parallelism at no charge. Open-source projects get three additional free containers. During signup, you will see the pricing to decide which plan(s) you need.
TeamCity is a JetBrains’s build management and continuous integration server.
TeamCity is a continuous integration tool that helps building and deploying different types of projects. TeamCity runs in a Java environment and integrates with Visual Studio and IDEs. The tool can be installed on both Windows and Linux servers, supports .NET and open-stack projects.
TeamCity 2019.1 provides a new UI and native GitLab integration. It also supports GitLab and Bitbucket server pull requests. The release includes token-based authentication, detection, reporting of Go tests, and AWS Spot Fleet requests.
TeamCity key features:
- Provides multiple ways to reuse settings and configurations of the parent project to the subproject
- Runs parallel builds simultaneously on different environments
- Enables running history builds, viewing test history reports, pinning, tagging, and adding builds to favorites
- Easy to customize, interact, and extend the server
- Keeps the CI server functional and stable
- Flexible user management, user roles assignment, sorting users into groups, different ways of user authentication, and a log with all user actions for transparency of all activities on the server
License : It is a commercial tool and licensed under a proprietary license.
Homepage : https://www.jetbrains.com/teamcity/
Bamboo is a continuous integration server that automates the management of software application releases, thus creating a continuous delivery pipeline. Bamboo covers building and functional testing, assigning versions, tagging releases, deploying and activating new versions on production.
Bamboo key features:
- Supports up to 100 remote build agents
- Run batches of tests in parallel and get feedback quickly
- Creates images and pushes into a registry
- Per-environment permissions that allow developers and testers to deploy to their environments on-demand while the production stays locked down
- Detects new branches in Git, Mercurial, SVN Repos and applies the main line’s CI scheme to them automatically
- Triggers build based on the changes detected in the repository. Pushes notifications from Bitbucket, a set schedule, the completion of another build or any combination thereof.
License : Bamboo pricing tiers are based on agents or “build slaves” rather than users. The more agents, the more processes it can run concurrently – either in the same build or different builds.
Homepage : https://www.atlassian.com/software/bamboo
GitLab is a suite of tools for managing different aspects of the software development lifecycle. The core product is a web-based Git repository manager with features such as issue tracking, analytics, and a Wiki.
GitLab allows you to trigger builds, run tests, and deploy code with each commit or push. You can build jobs in a virtual machine, Docker container, or on another server.
GitLab key features:
- View, create and manage codes and project data through branching tools
- Design, develop, and manage codes and project data from a single distributed version control system, enabling rapid iteration and delivery of business values
- Provides a single source of truth and scalability for collaborating on projects and code
- Helps delivery teams fully embrace CI by automating the builds, integration, and verification of source codes
- Provides container scanning, static application security testing (SAST), dynamic application security testing (DAST), and dependency scanning to deliver secure applications along with license compliance
- Helps automate and shorten releases and delivery of applications
License : GitLab is a commercial tool and free package. It offers hosting SaaS on GitLab or on your instance on-premises and/or on the public cloud.
Homepage : https://about.gitlab.com/
Buddy is a CI/CD software that builds, tests, deploys websites and applications with code from GitHub, Bitbucket, and GitLab. It employs Docker containers with pre-installed languages and frameworks to build on, along with DevOps, monitoring and notifying actions.
Buddy key features:
- Easy to customize Docker-based images as a test environment
- Smart change detection, state-of-the-art caching, parallelism, and all-around optimizations
- Create, customize, and reuse builds and test environments
- Plain and encrypted, fixed and settable scopes: workspace, project, pipeline, actions
- Attachable services with Elastic, MariaDB, Memcached, Mongo, PostgreSQL, RabbitMQ, Redis, Selenium Chrome, and Firefox
- Monitor with real-time progress and logs, unlimited history
- Workflows management with templates to clone, export, and import pipelines
- First-class Git support and integrations
License: Buddy is a free commercial tool.
Homepage : https://buddy.works/
Travis CI is a CI service used to build and test projects. Travis CI automatically detects new commits made and pushed to a GitHub repository. And after every new code commit, Travis CI will build the project and run tests accordingly.
The tool provides support for many build configurations and languages like Node, PHP, Python, Java, Perl, and so on.
Travis CI key features:
- Quick setup
- Live build views for GitHub projects monitoring
- Pull request support
- Deployment to multiple cloud services
- Pre-installed database services
- Auto deployments on passing builds
- Clean VMs for every build
- Supports macOS, Linux, and iOS
Travis CI is a hosted CI/CD service. Private projects can be tested on travis-ci.com on a fee basis. Open-source projects may be applied at no charge on travis-ci.org.
Homepage : https://travis-ci.com
Codeship is a hosted platform that supports early and automatic software releases in multiple times. It helps software companies develop better products faster by optimizing the testing and release processes.
Codeship key features:
- Integrates with any tools, services, and cloud environments of choice
- Easy to use. Provides fast and thorough developer support.
- Gets the builds and deployments work faster with CodeShip’s turnkey environment and simple UI
- Option to select AWS instances size, CPU, and memory
- Sets up teams and permissions for both organizations and team members with notification center
- Seamless third-party integrations, smart notification management, and project dashboards to provide a high-level overview of your projects and their health.
Use up to 100 builds/month for free, and unlimited builds start at $49/month. You can pay for more concurrent builds or more parallel pipelines, with larger instance sizes.
Homepage : https://codeship.com/
From ThoughtWorks, GoCD is an open-source tool to build and release software that supports modern infrastructure on CI/CD.
GoCD key features:
- Easily configure dependencies for fast feedback and on-demand deployments
- Promotes trusted artifacts: Every pipeline instance is anchored to a particular changeset
- Provides control over your end-to-end workflow, track changes from committing to deployment at a glance
- Easy to see the upstream and downstream
- Deploy any version at any time
- Allows deploying any known good version of your application to wherever you like
- Gets a simple bill of materials for any deployment with the Compare Builds feature
- Keeps configuration tidy by reusing pipeline configurations via GoCD’s template system
- Numerous plugins already available
License: Free and open-source
Wercker can be a suitable choice for developers who are working with or are considering starting a new project based on Docker. Wercker supports organizations and their development teams to work with CI/CD, microservices, and Docker.
On April 17, 2017, Oracle announced that it had signed a definitive agreement to acquire Wercker.
Wercker key features:
- Git integrations, including GitHub, Bitbucket, GitLab, and version control
- Replicate the SaaS environment locally with Wercker CLI, which helps debug and test pipelines before deploying
- Supports Wercker’s Docker integration to build minimal containers and keep the sizes manageable
- Walterbot – a chatbot in Wercker – allows you to interact with notifications to update the build status
- Environment variables help keep sensitive information away from the repository
- Wercker utilizes key security features, including source code protection, to turn test logs off, protected environment variables, and customizable permissions for both the users and projects
License: Oracle has not provided pricing information for Wercker after its acquisition.
Homepage : https://app.wercker.com
Semaphore is a hosted CI/CD service used for testing and deploying software projects. Semaphore establishes CI/CD standards with a pull request-based development process.
Semaphore key features:
- Integrated with GitHub
- Automates any continuous delivery pipeline
- Runs on the fastest CI/CD platform
- Automatically scales your project, so that you only pay for what you use
- Native Docker support. Testing and deploying Docker-based applications
- Offers Boosters – a feature used to reduce the test suite run time through automatic parallelization of builds for Ruby projects
License: Flexible. With traditional CI services, you are limited by your plan’s capacity. Meanwhile, Semaphore 2.0 will scale according to your team’s actual needs, so that you do not have to pay when not using the tool.
Nevercode supports CI/CD for mobile apps. It helps build, test, and release both native and cross-platform apps faster.
Nevercode key features:
- Automatic configuration and setup
- Test automation: unit and UI tests, code analysis, real device testing, test parallelization
- Automatic publishing: iTunes Connect, Google Play, Crashlytics, TestFairy, HockeyApp
- Detailed overview of your build and test status
License : Flexible. Different plans for different needs for continuous integration. You can choose from standard plans or request a customized plan that is tailored to your requirements.
Spinnaker is a multi-cloud continuous delivery platform that supports releasing and deploying software changes across different cloud providers, including AWS EC2, Kubernetes, Google Compute Engine, Google Kubernetes Engine, Google App Engine, etc.
Spinnaker key features:
- Creates deployment pipelines that run integration and system tests, spin up and down server groups, and monitor rollouts. Trigger pipelines via Git events, Jenkins, Travis CI, Docker, cron, or other Spinnaker pipelines
- Create and deploy immutable images for faster rollouts, easier rollbacks, and the elimination of hard to debug configuration drift issues
- Tie your releases to monitoring services such as Datadog, Prometheus, Stackdriver, or SignalFx, using their metrics for canary analysis
- Install, configure, and update your Spinnaker instances with Halyard – Spinnaker’s CLI administration tool
- Set up event notifications for email, Slack, HipChat, or SMS (via Twilio)
Homepage : https://www.spinnaker.io/
Buildbot is a “Python-based CI framework” that automates the compile and test cycles to validate code changes, then automatically rebuild and test the tree after every change. Therefore, build problems are quickly pinpointed.
Buildbot key features:
- Automate build systems, application deployment, and management of sophisticated software-release processes
- Supports distributed, parallel execution across multiple platforms, flexible integration with version-control systems, extensive status reporting
- Runs builds on a variety of slave platforms
- Arbitrary build process and handles projects using C and Python
- Minimal host requirements: Python and Twisted
Note: Buildbot will stop supporting Python 2.7 and requires migration to Python 3.
Homepage : https://buildbot.net/
This list includes the best 14 CI/CD tools that are currently most popular in the market. We hope this list has provided the sufficient information you need to choose software that best fits your specification. The CI/CD tools mentioned in this list are the matured ones with the essential capabilities for your projects. Your requirements, existing infrastructure, as well as room for future potential and improvement are the factors that will impact your final choice.
The CI/CD and DevOps trends will continue to evolve, leaving space for the market to grow and improve. The landscape will transform, and this list will be updated to ensure the information stays true for you.
Further reading: Top 30+ DevOps Interview Questions [Ultimate list]
The post Best 14 CI/CD Tools You Must Know | Updated for 2019 appeared first on Katalon Studio.