Jenkins vs GitLab CI
No installation needed
GitLab CI ships with GitLab and is ready to use out of the box. The only thing you need to install is the GitLab Runner which processes the jobs.
Minimal build configuration
GitLab CI requires less configuration for your builds than a similar Jenkins setup. Your pipelines are defined in a versioned controlled yaml file that is easy to edit and extend while Jenkins uses a JSON-style format.
Both GitLab CI and Jenkins are extensible through an API or plugin system respectively, but GitLab's core CI feature set is more comprehensive than Jenkins.
You can set up your own GitLab Runner on virtually any Operating System and any Unix distribution, from Windows to FreeBSD and Kubernetes.
Built for containers and Docker
GitLab ships with its own Container Registry, CI Runner and is ready for a complete CI/CD container workflow. You can use any Docker image you like (even from private Container Registries) which means you can test and build on any programming language and framework.
GitLab CI/CD is Cloud Native, purpose built for the cloud model. GitLab ships with Red Hat OpenShift and Kubernetes support out of the box.
Scalable infrastructure built on Docker machine
Thanks to GitLab Runners being able to autoscale, your infrastructure can contain only as much build instances as necessary at anytime. Autoscale provides the ability to utilize resources in a more elastic and dynamic way. When this feature is enabled and configured properly, jobs are executed on machines created on demand something that also leads to reduced costs.
Out of the box setup of build environments
When you run GitLab on-premises, you must set up your own build environment by manually installing and configuring GitLab Runner. GitLab.com offers container-based shared Runners which you can use for your projects by choosing any Docker image you want. Installing the appropriate software for your project is up to you.
Environments and deployments
GitLab CI is capable of not only testing or building your projects, but also deploying them in your infrastructure, with the added benefit of giving you a way to track and rollback your deployments. You can always know what is currently being deployed or has been deployed on your servers.
Preview your changes with Review Apps
With GitLab CI you can create a new environment for each one of your branches, speeding up your development process. Spin up dynamic environments for your merge requests with the ability to preview your branch in a live environment.
Comprehensive pipeline graphs
Pipelines can be complex structures with many sequential and parallel jobs. To make it a little easier to see what is going on, you can view a graph of a single pipeline and its status. Jenkins provides that ability only with an addition of a plugin.
With GitLab CI you can upload your job artifacts in GitLab itself without the need of an external service. Because of this, artifacts are also browsable through GitLabs's web interface. Travis CI relies on having an AWS S3 account in order to upload artifacts.
Scheduled triggering of pipelines
You can make your pipelines run on a schedule in a cron-like environment.
GitLab ships with Prometheus allowing you to monitor the performance of your deployed environments in Kubernetes without any additional setup.
Integrates with Cycle Analytics
GitLab CI integrates with GitLab Cycle Analytics allowing you see how much of your cycle time from idea to production is spent on development, testing and review.
Monitor Kubernetes deployments with Deploy Boards
GitLab Enterprise Edition Premium ships with Deploy Boards offering a consolidated view of the current health and status of each CI environment running on Kubernetes. The status of each pod of your latest deployment is displayed seamlessly within GitLab without the need to access Kubernetes.
Support for Canary Deployments monitoring
GitLab Enterprise Edition Premium can monitor your Canary Deployments when deploying your applications with Kubernetes.
Last updated: May 11, 2017 Download as PDF
Since GitLab fans wrote most of the text here there is a pro-GitLab bias. Nonetheless we try hard to ensure the comparisons are fair and factual. Please also add things that are great in other products but missing in GitLab. If you find something that is invalid, biased, missing, or out of date in the comparisons, please open a merge request for this website to correct it. As with all the pages on this website you can find where this page lives in the repository via the link in the footer. All names and logos are recognized trademarks of their respective owners.