Product Solutions Resources Partners Pricing Support Talk to an expert Get free trial Login GitLab vs Codefresh Decision Kit Summary Codefresh is a CI/CD tool designed for containers and Kubernetes. Codefresh features a GitLab integration that allows you to use GitLab for version control and run Codefresh pipelines on your code. Codefresh has some features that make it more mature than GitLab for running pipelines across multiple projects. But it lacks the benefits of a single application. Codefresh charges for builds per month, as well as concurrent builds. GitLab has no such limitations with the ability to elastically scale Runners to handle as many concurrent builds as needed on demand and then scale down so you aren’t paying to keep inactive Runners up. Codefresh only offers a self-managed option for Enterprise pricing. Free, Basic, and Pro tiers are for SaaS-only. GitLab offers self-managed and SaaS options at every price point. Resources Codefresh homepage Comparison page on their site Codefresh GitLab integration Comments/Anecdotes Codefresh makes some claims in their blog comparing themselves to GitLab that are not really accurate. “GitlabCI isn’t designed for micro-services since everything is tied to a single project” Although we can improve our microservices support, (and plan to) this claim is not true. Today, GitLab has multi project pipelines and can trigger pipelines for mulit-projects via API. In fact, The CI working group for CNCF chose GitLab to run their multi-project multi-cloud pipelines. Read more in the CNCF case study. We are missing some features identified in this post that would bring us on par with Codefresh The ability to define multiple pipelines Support for monorepos with the ability to run pipelines only on specific directories - UPDATE: Shipped in Gitlab 11.4 Group level Docker registry browser Group level Kubernetes clusters - UPDATE: Shipped in GitLab 11.6 Make container building first class Integrated Helm repository Additional CodeFresh Capabilities Private Helm repository Global Helm repo configuration Helm Repository browser Helm release boards Helm environment board Zero configuration caching/artifacts using docker volumes Distributed Docker layer caching Custom docker image annotations Inline pipeline editor Feature Comparison FEATURES Built-in Container Registry SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE 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 SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE 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 CI/CD Horizontal Autoscaling SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE GitLab CI/CD cloud native architecture can easily scale horizontally by adding new nodes if the workload increases. GitLab Runners can automatically spin up and down new containers to ensure pipelines are processed immediately and minimize costs. Learn more about GitLab CI/CD Horizontal Autoscaling CI/CD Pipelines Dashboard SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Visualize the history and current status of pipelines across projects and groups all in a single dashboard that can be customized for each user. Learn more about Cross-Project Pipelines in the Operations Dashboard Group-level Docker registry browser SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE A single UI view into images across multiple repositories. Learn more about the GitLab Container Registry Helm chart repository support SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Supports storage and retrieval of Helm charts. Check out the documentation, and get started today. Comprehensive pipeline graphs SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE 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 Scheduled triggering of pipelines SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE You can make your pipelines run on a schedule in a cron-like environment. Learn how to trigger pipelines on a schedule in GitLab Run CI/CD jobs on Windows SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE GitLab Runner supports Windows and can run jobs natively on this platform. You can automatically build, test, and deploy Windows-based projects by leveraging PowerShell or batch files. Install GitLab Runner on Windows Run CI/CD jobs on macOS SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE GitLab Runner supports macOS and can run jobs natively on this platform. You can automatically build, test, and deploy for macOS based projects by leveraging shell scripts and command line tools. Install GitLab Runner on macOS Run CI/CD jobs on Linux ARM SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE GitLab Runner supports Linux operating systems on ARM architectures and can run jobs natively on this platform. You can automatically build, test, and deploy for Linux ARM based projects by leveraging shell scripts and command line tools. Install GitLab Runner on Linux Run CI/CD jobs on FreeBSD SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE GitLab Runner supports FreeBSD and can run jobs natively on this platform. You can automatically build, test, and deploy for FreeBSD-based projects by leveraging shell scripts and command line tools. Install GitLab Runner on FreeBSD Show code coverage rate for your pipelines SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE GitLab is able to parse job output logs and search, via a customizable regex, any information created by tools like SimpleCov to get code coverage. Data is automatically available in the UI and also as a badge you can embed in any HTML page or publish using GitLab Pages. Learn how to generate and show code coverage information in GitLab Details on duration for each command execution in GitLab CI/CD SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Other CI systems show execution time for each single command run in CI jobs, not just the overall time. We’re reconsidering how job output logs are managed in order to add this feature as well. Learn more about job output logs in the documentation Auto DevOps SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Auto DevOps brings DevOps best practices to your project by automatically configuring software development lifecycles by default. It automatically detects, builds, tests, deploys, and monitors applications. Read more about Auto DevOps in the documentation Protected Runners SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Protected Runners allow you to protect your sensitive information, for example deployment credentials, by allowing only jobs running on protected branches to access them. Read more on the issue Easy integration of existing Kubernetes clusters SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE 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 SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Manage the deployments and connection to your Kubernetes clusters in a secure and compliant way, driven by code. Read more on the docs Support for multiple Kubernetes clusters SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Easily deploy different environments, like Staging and Production, to different Kubernetes clusters. This allows to enforce strict data separation. Read more in the docs Integrated cluster cost management SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Get a peek at the cost of running your applications in Kubernetes to help with your budgeting requirements. Read through the documentation on setting up cluster cost management Automatic Retry for Failed CI Jobs SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE You can specify a retry keyword in your .gitlab-ci.yml file to make GitLab CI/CD retry a job for a specific number of times before marking it as failed. Learn more about Automatic Retry for Failed CI Jobs Pipelines security SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE The ability of running CI/CD pipelines on protected branches is checked against a set of security rules that defines if you’re allowed or not. It includes creating new pipelines, retrying jobs, and perform manual actions. Learn more about pipeline security Include external files in CI/CD pipeline definition SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE You can include external files in your pipeline definition file, using them as templates to reuse snippets for common jobs. Learn more about including external files Static Application Security Testing SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE GitLab allows easily running Static Application Security Testing (SAST) in CI/CD pipelines; checking for vulnerable source code or well known security bugs in the libraries that are included by the application. Results are then shown in the Merge Request and in the Pipeline view. This feature is available as part of Auto DevOps to provide security-by-default. Learn more about Static Application Security Testing Infrastructure as Code (IaC) Security Scanning SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE “With Gitlab 14.5 we’re introducing security scanning for Infrastructure as Code (IaC) configuration files.” Learn more about IaC security scanning Secret Detection SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE GitLab allows you to perform Secret Detection in CI/CD pipelines; checking for unintentionally committed secrets and credentials. Results are then shown in the Merge Request and in the Pipeline view. This feature is available as part of Auto DevOps to provide security-by-default. Learn more about Secret Detection Dependency Scanning SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Protect your application from vulnerabilities that affect dynamic dependencies by automatically detecting well-known security bugs in your included libraries. Learn more about Dependency Scanning Dynamic Application Security Testing SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Ensure you are not exposed to web application vulnerabilities like broken authentication, cross-site scripting, or SQL injection by dynamically investigating your running test applications in CI/CD pipelines. Learn more about application security for containers Interactive Application Security Testing SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE IAST combines elements of static and dynamic application security testing methods to improve the overall quality of the results. IAST typically uses an agent to instrument the application to monitor library calls and more. GitLab does not yet offer this feature. Container Scanning SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Run a security scan to ensure the Docker images for your application do not have any known vulnerabilities in the environment where your code is shipped. Learn more about container scanning Browser Performance Testing SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Easily detect performance regressions for web apps and pages prior to merging into master. Browser Performance Testing is included in Auto DevOps, providing automatic performance analytics of the root page with zero configuration. Learn more about Browser Performance Testing Load Performance Testing SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Easily detect performance regressions for APIs prior to merging into master. Learn more about Load Performance Testing Automated Accessibility scanning of Review Apps SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Performing accessibility testing is important in order to ensure you’re serving all the users who use your products. In GitLab you can generate Accessibility reports automatically prior to merging into master. Learn more about Automated Accessibility scanning Virtual registries SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE A virtual registry is a collection of local, remote and other virtual registries accessed through a single logical URL. GitLab Epic detailing the issues required to add this functionality. Forward requests for npm packages not found in GitLab to npmjs.com SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE By default, when an npm package is not found in the GitLab registry, the request is forwarded to npmjs.com Check out the docs to learn more Forward requests for Python packages not found in GitLab to PyPI.org SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE By default, when a PyPI package is not found in the GitLab registry, the request is forwarded to PyPI.org Check out the docs to learn more Conan (C/C++) Repository SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Conan is an open source, decentralized and multi-platform C/C++ Package Manager for developers to create and share native binaries. Documentation on the Conan Repository Maven (Java) Repository SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE GitLab’s Maven repository makes it easier to publish and share Java libraries across an organization, and ensure dependencies are managed correctly. It is fully integrated with GitLab, including authentication and authorization. Documentation on the Maven Repository npm (node) Registry SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE GitLab’s NPM repository makes it easier to publish and share NPM packages across an organization, and ensure dependencies are managed correctly. It is fully integrated with GitLab, including authentication and authorization. Documentation on the NPM Registry NuGet (.NET) Repository SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE GitLab’s NuGet Repository allows C#/.NET developers to create, publish and share packages using the NuGet client or visual studio. Documentation on the NuGet Repository PyPI (Python) Repository SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Python developers can set up GitLab as a remote PyPI repository and build, publish, and share packages using the PyPI client or GitLab CI/CD. Documentation for the PyPI Repository RPM (Linux) Repository SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE This planned feature will enable Linux developers to build, publish and share RPM packages alongside their source code and pipelines. Check out the issue for additional details on implementation and timing Debian (Linux) Repository SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE This planned feature will enable Linux developers to build, publish and share Debian packages alongside their source code and pipelines. Check out the issue for additional details on implementation and timing RubyGems (Ruby) Repository SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE This planned feature will enable Ruby developers to setup GitLab as a remote RubyGems repository and to build, publish and share packages using the command line or GitLab CI/CD. This will also be a valuable feature for GitLab and help with dogfooding Check out the issue for additional details on implementation and timing Go Proxy SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE This feature helps Go developers to publish and share their packages right alongside their source code and pipelines. This will also be a valuable feature for GitLab and help with dogfooding Read the Go Proxy docs Composer (PHP) Repository SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE This feature helps PHP developers to build, publish and share their packages right alongside their source code and pipelines. Check out the docs Use the Package Registry through REST API SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Enables support for automation and integration of the GitLab Package Registry through a REST API. Documentation on API Explicit support for monorepos SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE The ability to execute jobs only/except when there are changes for a given path or file support monorepos where many microservices are contained in a single repo. Learn more about only/except CI/CD execution Global Docker registry browser SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE A single UI view into images across multiple repositories. Read more on the issue Instance-level Kubernetes cluster configuration SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE A single UI view into Kubernetes cluster configuration for a GitLab instance. Read more in the docs First class container building SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE The ability to specify that a container should be built during a CI/CD job without needing to specify the implementation details. Read more on the issue Group-level kubernetes clusters SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Create group-level Kubernetes cluster that can be used for all projects contained within the group or sub-groups. Learn more about group-level clusters Instance-level kubernetes clusters SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Create instance-level Kubernetes clusters that can be used for all groups and projects contained within the same GitLab instance. Learn more about instance-level clusters On-demand DAST SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Identify vulnerabilities in your running application, independent of code changes or merge requests. Learn more about On-demand DAST Site and Scanner profiles for On-demand DAST scans SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Reuse configuration profiles quickly with on-demand DAST scans, instead of reconfiguring scans every time you need to run one. Mix different scan profiles with site profiles to quickly conduct scans that cover different areas or depths of your application and API. Learn more about application security for containers DAST Configuration UI SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Enabling DAST is now as simple as three clicks. This guided configuration experience makes it easier for non-CI experts to get started with GitLab DAST. The tool helps a user create a merge request to enable DAST scanning while leveraging best configuration practices like using the GitLab-managed DAST.gitlab-ci.yml template. Learn more about the DAST Configuration UI Scheduling On-demand DAST scans SaaS FREE PREMIUM ULTIMATE Self-Managed FREE PREMIUM ULTIMATE Set on-demand DAST scans to run on ad hoc or recurring schedules. Learn more about scheduling on-demand scans Twitter Facebook YouTube LinkedIn Why GitLab? Product Solutions Services DevOps tools Is it any good? Releases Pricing Get started Resources All resources All-Remote Blog Newsletter Events Webcasts Topics Training Docs Developer Portal Install Community Customers Contribute Community Programs Direction Technology Partners Channel Partners Open Source Partners GitLab for Open Source GitLab for Education GitLab for Startups Shop Community Forum Support Get help Contact Sales Contact Support Support options Status Customers Portal Company About What is GitLab? Jobs Culture Leadership Team Press Investor Relations Analysts Handbook Security Contact Terms Privacy Cookie Preferences Trademark Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license View page source — Edit in Web IDE — please contribute. © 2021 GitLab B.V. This website uses cookies We use cookies to make our websites and services operate correctly, to understand how visitors engage with us and to improve our product and marketing efforts. See our cookie policy for more information.Cookie Policy Cookies Settings Accept All Cookies