GitLab
vs
JetBrains TeamCity

Decision Kit

Decision Kit

Summary

Team City Java-based build management and continuous integration server from JetBrains. They are widely know for their extended family of integrated development environments (IDEs) for SQL and the programming languages Java, Kotlin, Ruby, Python, PHP, Objective-C, C++, C#, Go and JavaScript. Team City is known for its ease of configuration, reliability and GitHub configuration.

In contrast, GitLab already provides more than what TeamCity does with CI only, by providing a fully integrated single application for the entire DevOps lifecycle. More than TeamCity, GitLab also provides planning, SCM, packaging, release, configuration, and monitoring (in addition to the CI TeamCity is focused on). ## Resources * TeamCity Website * TeamCity Wikipedia

Feature Comparison
FEATURES

Built-in CI/CD

GitLab has built-in Continuous Integration/Continuous Delivery, for free, no need to install it separately. Use it to build, test, and deploy your website (GitLab Pages) or webapp. The job results are displayed on merge requests for easy access.

Learn more about CI/CD

Built-in Container Registry

GitLab Container Registry is a secure and private registry for Docker images. It allows for easy upload and download of images from GitLab CI. It is fully integrated with Git repository management. (Codefresh will be ending their support for private docker registries as of May 1, 2020

Documentation on Container Registry

Preview your changes with Review Apps

With GitLab CI/CD 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. Review Apps support both static and dynamic URLs.

Learn more about Review Apps

Built for using containers and Docker

GitLab ships with its own Container Registry, Docker CI Runner, and is ready for a complete CI/CD container workflow. There is no need to install, configure, or maintain additional plugins.

Read the docs

Cloud Native

GitLab and its CI/CD is Cloud Native, purpose built for the cloud model. GitLab can be easily deployed on Kubernetes and used to deploy your application to Kubernetes with support out of the box.

Kubernetes integration

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.

Learn more about pipeline graphs

Browsable artifacts

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 GitLab’s web interface.

Learn more about using job artifacts in your project

Latest artifacts locked to prevent deletion

The latest artifact of a successful job and pipeline on any active branch, MR, or tag is automatically locked to prevent being deleted. This makes it possible to set an aggressive expiration policy to clean up older artifacts, reduce disk space consumption, and ensure the latest artifact is always available. This default behavior is configurable at the project level and can be disabled in project settings.

Learn more about job artifacts expiration

Scheduled triggering of pipelines

You can make your pipelines run on a schedule in a cron-like environment.

Learn how to trigger pipelines on a schedule in GitLab

Code Quality MR Widget

Code Quality reports are available in the merge request widget area, giving you early insights into how the change will affect the health of your code before deciding if you want to accept it.

Learn more about Code Quality

Code Quality Reports

Full Code Quality reports are available on the pipeline page, showing areas of the codebase that do not meet the organization’s preferred style or standards.

Learn more about Code Quality reports

Code Quality violation notices in MR diffs

Code Quality violations introduced in a merge request are annotated in the merge request diff view to detail how the code quality could decrease if merged.

Learn more about Code Quality in MR diffs

Multi-project pipeline graphs

Visualize how pipelines across projects are linked together, including cross project dependencies.

Learn more about multi-project pipeline graphs

Easy integration of existing Kubernetes clusters

Add your existing Kubernetes cluster to your project, and easily access it from your CI/CD pipelines to host Review Apps and to deploy your application.

Read more in the docs

GitLab Kubernetes Agent

Manage the deployments and connection to your Kubernetes clusters in a secure and compliant way, driven by code.

Read more on the docs

View Kubernetes pod logs

The monitoring of servers, application, network and security devices via generated log files to identify errors and problems for analysis. GitLab makes it easy to view the logs of running pods in connected Kubernetes clusters. By displaying the logs directly in GitLab, developers can avoid having to manage console tools or jump to a different interface.

Learn more about viewing Kubernetes pod logs