GitLab CI/CD
GitLab CI/CD is a tool for software development using the continuous methodologies:
Use GitLab CI/CD to catch bugs and errors early in the development cycle. Ensure that all the code deployed to production complies with the code standards you established for your app.
GitLab CI/CD can automatically build, test, deploy, and monitor your applications by using Auto DevOps.
For a complete overview of these methodologies and GitLab CI/CD, read the Introduction to CI/CD with GitLab.
Concepts
GitLab CI/CD uses a number of concepts to describe and run your build and deploy.
Concept | Description |
---|---|
Pipelines | Structure your CI/CD process through pipelines. |
CI/CD variables | Reuse values based on a variable/value key pair. |
Environments | Deploy your application to different environments (for example, staging, production). |
Job artifacts | Output, use, and reuse job artifacts. |
Cache dependencies | Cache your dependencies for a faster execution. |
GitLab Runner | Configure your own runners to execute your scripts. |
Pipeline efficiency | Configure your pipelines to run quickly and efficiently. |
Test cases | Create testing scenarios. |
Configuration
GitLab CI/CD supports numerous configuration options:
Configuration | Description |
---|---|
Schedule pipelines | Schedule pipelines to run as often as you need. |
Custom path for .gitlab-ci.yml
| Define a custom path for the CI/CD configuration file. |
Git submodules for CI/CD | Configure jobs for using Git submodules. |
SSH keys for CI/CD | Using SSH keys in your CI pipelines. |
Pipeline triggers | Trigger pipelines through the API. |
Merge request pipelines | Design a pipeline structure for running a pipeline in merge requests. |
Integrate with Kubernetes clusters | Connect your project to Google Kubernetes Engine (GKE) or an existing Kubernetes cluster. |
Optimize GitLab and GitLab Runner for large repositories | Recommended strategies for handling large repositories. |
.gitlab-ci.yml full reference
| All the attributes you can use with GitLab CI/CD. |
Certain operations can only be performed according to the user and job permissions.
Features
GitLab CI/CD features, grouped by DevOps stage, include:
Feature | Description |
---|---|
Configure | |
Auto DevOps | Set up your app’s entire lifecycle. |
ChatOps | Trigger CI jobs from chat, with results sent back to the channel. |
Connect to cloud services | Connect to cloud providers using OpenID Connect (OIDC) to retrieve temporary credentials to access services or secrets. |
Verify | |
Browser Performance Testing | Quickly determine the browser performance impact of pending code changes. |
Load Performance Testing | Quickly determine the server performance impact of pending code changes. |
CI services | Link Docker containers with your base image. |
GitLab CI/CD for external repositories | Get the benefits of GitLab CI/CD combined with repositories in GitHub and Bitbucket Cloud. |
Interactive Web Terminals | Open an interactive web terminal to debug the running jobs. |
Review Apps | Configure GitLab CI/CD to preview code changes. |
Unit test reports | Identify test failures directly on merge requests. |
Using Docker images | Use GitLab and GitLab Runner with Docker to build and test applications. |
Release | |
Auto Deploy | Deploy your application to a production environment in a Kubernetes cluster. |
Building Docker images | Maintain Docker-based projects using GitLab CI/CD. |
Canary Deployments | Ship features to only a portion of your pods and let a percentage of your user base to visit the temporarily deployed feature. |
Deploy boards | Check the current health and status of each CI/CD environment running on Kubernetes. |
Feature Flags | Deploy your features behind Feature Flags. |
GitLab Pages | Deploy static websites. |
GitLab Releases | Add release notes to Git tags. |
Cloud deployment | Deploy your application to a main cloud provider. |
Secure | |
Code Quality | Analyze your source code quality. |
Container Scanning | Check your Docker containers for known vulnerabilities. |
Dependency Scanning | Analyze your dependencies for known vulnerabilities. |
License Compliance | Search your project dependencies for their licenses. |
Security Test reports | Check for app vulnerabilities. |
Examples
See the CI/CD examples page for example project code and tutorials for using GitLab CI/CD with various:
- App frameworks
- Languages
- Platforms
Administration
You can change the default behavior of GitLab CI/CD for:
- An entire GitLab instance in the CI/CD administration settings.
- Specific projects in the pipelines settings.
See also:
Related topics
Learn more about GitLab CI/CD:
-
.
- .
- .
- If you use VS Code to edit your GitLab CI/CD configuration, the GitLab Workflow VS Code extension helps you validate your configuration and view your pipeline status.
- .
See also the Major version changes (breaking)
As GitLab CI/CD has evolved, certain breaking changes have been necessary.
14.0
- No breaking changes.
13.0
12.0
11.0
- No breaking changes.
10.0
- No breaking changes.