GitLab CI/CD | GitLab (2024)

  • Concepts
  • Configuration
  • Features
  • Examples
  • Administration
  • Related topics
    • Major version changes (breaking)

GitLab CI/CD is a tool for software development using the continuous methodologies:

  • Continuous Integration (CI)
  • Continuous Delivery (CD)
  • Continuous Deployment (CD)

Out-of-the-box management systems can decrease hours spent on maintaining toolchains by 10% or more.Watch our “Mastering continuous software development”webcast to learn about continuous methods and how GitLab CI/CD can help you simplify and scale software development.

Use GitLab CI/CD to catch bugs and errors early inthe development cycle. Ensure that all the code deployed toproduction complies with the code standards you established foryour app.

GitLab CI/CD can automatically build, test, deploy, andmonitor 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.

Video demonstration of continuous integration with GitLab CI/CD: Continuous Integration with GitLab (overview demo).

Concepts

GitLab CI/CD uses a number of concepts to describe and run your build and deploy.

ConceptDescription
PipelinesStructure your CI/CD process through pipelines.
CI/CD variablesReuse values based on a variable/value key pair.
EnvironmentsDeploy your application to different environments (for example, staging, production).
Job artifactsOutput, use, and reuse job artifacts.
Cache dependenciesCache your dependencies for a faster execution.
GitLab RunnerConfigure your own runners to execute your scripts.
Pipeline efficiencyConfigure your pipelines to run quickly and efficiently.
Test casesCreate testing scenarios.

Configuration

GitLab CI/CD supports numerous configuration options:

ConfigurationDescription
Schedule pipelinesSchedule pipelines to run as often as you need.
Custom path for .gitlab-ci.ymlDefine a custom path for the CI/CD configuration file.
Git submodules for CI/CDConfigure jobs for using Git submodules.
SSH keys for CI/CDUsing SSH keys in your CI pipelines.
Pipeline triggersTrigger pipelines through the API.
Merge request pipelinesDesign a pipeline structure for running a pipeline in merge requests.
Integrate with Kubernetes clustersConnect your project to Google Kubernetes Engine (GKE) or an existing Kubernetes cluster.
Optimize GitLab and GitLab Runner for large repositoriesRecommended strategies for handling large repositories.
.gitlab-ci.yml full referenceAll the attributes you can use with GitLab CI/CD.

Certain operations can only be performed according to theuser and job permissions.

Features

GitLab CI/CD features, grouped by DevOps stage, include:

FeatureDescription
Configure
Auto DevOpsSet up your app’s entire lifecycle.
ChatOpsTrigger CI jobs from chat, with results sent back to the channel.
Connect to cloud servicesConnect to cloud providers using OpenID Connect (OIDC) to retrieve temporary credentials to access services or secrets.
Verify
Browser Performance TestingQuickly determine the browser performance impact of pending code changes.
Load Performance TestingQuickly determine the server performance impact of pending code changes.
CI servicesLink Docker containers with your base image.
GitLab CI/CD for external repositoriesGet the benefits of GitLab CI/CD combined with repositories in GitHub and Bitbucket Cloud.
Interactive Web TerminalsOpen an interactive web terminal to debug the running jobs.
Review AppsConfigure GitLab CI/CD to preview code changes.
Unit test reportsIdentify test failures directly on merge requests.
Using Docker imagesUse GitLab and GitLab Runner with Docker to build and test applications.
Release
Auto DeployDeploy your application to a production environment in a Kubernetes cluster.
Building Docker imagesMaintain Docker-based projects using GitLab CI/CD.
Canary DeploymentsShip features to only a portion of your pods and let a percentage of your user base to visit the temporarily deployed feature.
Deploy boardsCheck the current health and status of each CI/CD environment running on Kubernetes.
Feature FlagsDeploy your features behind Feature Flags.
GitLab PagesDeploy static websites.
GitLab ReleasesAdd release notes to Git tags.
Cloud deploymentDeploy your application to a main cloud provider.
Secure
Code QualityAnalyze your source code quality.
Container ScanningCheck your Docker containers for known vulnerabilities.
Dependency ScanningAnalyze your dependencies for known vulnerabilities.
License ComplianceSearch your project dependencies for their licenses.
Security Test reportsCheck for app vulnerabilities.

Examples

See the CI/CD examples page for example project code and tutorials forusing 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:

  • Enable or disable GitLab CI/CD in a project.

Learn more about GitLab CI/CD:

See also the Why CI/CD? presentation.

Major version changes (breaking)

As GitLab CI/CD has evolved, certain breaking changes havebeen necessary.

For GitLab 15.0 and later, all breaking changes are documented on the following pages:

  • Deprecations
  • Removals

The breaking changes for GitLab Runner in earliermajor version releases are:

GitLab CI/CD | GitLab (2024)

References

Top Articles
Latest Posts
Article information

Author: Stevie Stamm

Last Updated:

Views: 5839

Rating: 5 / 5 (80 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Stevie Stamm

Birthday: 1996-06-22

Address: Apt. 419 4200 Sipes Estate, East Delmerview, WY 05617

Phone: +342332224300

Job: Future Advertising Analyst

Hobby: Leather crafting, Puzzles, Leather crafting, scrapbook, Urban exploration, Cabaret, Skateboarding

Introduction: My name is Stevie Stamm, I am a colorful, sparkling, splendid, vast, open, hilarious, tender person who loves writing and wants to share my knowledge and understanding with you.