gitlab-org--gitlab-foss/doc/ci
Kamil Trzciński 8fa1ab4c33 Support negative matches
This adds support for != and !~ operators
giving more flexibility in comparing values
2019-04-23 14:19:06 +02:00
..
autodeploy Docs: Add automatic redirects to many moved files 2019-03-11 05:54:25 +00:00
build_artifacts Docs: Add automatic redirects to many moved files 2019-03-11 05:54:25 +00:00
caching Docs: Fix all anchors related to YAML 2019-02-22 00:25:06 +00:00
chatops Docs: Fix anchors related to variables doc 2019-04-08 12:32:38 +00:00
docker Update auth with registry docs 2019-04-09 09:32:27 +00:00
environments Refactor and restructure environments page 2019-03-26 12:49:24 +10:00
examples Update CodeQuality example docs 2019-04-17 11:25:18 +02:00
img Refactor and restructure pipelines landing page 2019-03-14 23:55:02 +00:00
interactive_web_terminal Update web terminal note for shared runners 2019-01-30 08:45:40 +01:00
introduction Docs: CI/CD intro - add new illustration + description 2019-04-16 16:35:37 +00:00
large_repositories Add doc cross links for large repositories 2019-04-23 04:11:19 +00:00
merge_request_pipelines Docs: update feature name "Pipelines for Merged Results" 2019-04-22 12:43:02 +00:00
permissions Docs: Fix CI/CD related anchors 2019-03-11 01:47:01 +00:00
quick_start README.md: fix URL to CI Lint 2019-03-26 08:05:58 +00:00
review_apps Refactor review apps doco and CI landing page 2019-04-15 21:45:19 +00:00
runners Fix wrong docs on untagged jobs 2019-02-17 22:19:43 +00:00
services Docs: Fix CI/CD related anchors 2019-03-11 01:47:01 +00:00
ssh_keys Docs: Fix anchors related to variables doc 2019-04-08 12:32:38 +00:00
triggers Docs: Fix anchors related to variables doc 2019-04-08 12:32:38 +00:00
variables Support negative matches 2019-04-23 14:19:06 +02:00
yaml Update README.md 2019-04-17 16:26:13 +00:00
enable_or_disable_ci.md
environments.md Docs: Fix anchors related to variables doc 2019-04-08 12:32:38 +00:00
git_submodules.md
junit_test_reports.md Correct Gradle files pattern matching description and example 2019-03-15 17:35:58 +08:00
pipelines.md Docs: Fix anchors related to environments doc 2019-04-08 03:11:30 +00:00
README.md Refactor review apps doco and CI landing page 2019-04-15 21:45:19 +00:00

comments description
false Learn how to use GitLab CI/CD, the GitLab built-in Continuous Integration, Continuous Deployment, and Continuous Delivery toolset to build, test, and deploy your application.

GitLab Continuous Integration (GitLab CI/CD)

GitLab CI/CD is GitLab's built-in tool for software development using continuous methodology:

  • Continuous integration (CI).
  • Continuous delivery and deployment (CD).

Within the DevOps lifecycle, GitLab CI/CD spans the Verify (CI) and Release (CD) stages.

Overview

CI/CD is a vast area, so GitLab provides documentation for all levels of expertise. Consult the following table to find the right documentation for you:

Level of expertise Resource
New to the concepts of CI and CD For a high-level overview, read an introduction to CI/CD with GitLab.
Familiar with GitLab CI/CD concepts After getting familiar with GitLab CI/CD, let us walk you through a simple example in our getting started guide.
A GitLab CI/CD expert Jump straight to our .gitlab.yml reference.

Familiarity with GitLab Runner is also useful because it is responsible for running the jobs in your CI/CD pipeline. On GitLab.com, shared Runners are enabled by default so you won't need to set this up to get started.

CI/CD with Auto DevOps

Auto DevOps is the default minimum-configuration method for implementing CI/CD. Auto DevOps:

  • Provides simplified setup and execution of CI/CD.
  • Allows GitLab to automatically detect, build, test, deploy, and monitor your applications.

Manually configured CI/CD

For complete control, you can manually configure GitLab CI/CD.

Configuration and Usage

The following topics contain configuration and usage information for all features of GitLab CI/CD:

Topic Description
Creating and using CI/CD pipelines Understand, visualize, create, and use CI/CD pipelines.
CI/CD Variables Configuring and using environment variables in pipelines.
Where variables can be used Where and how CI/CD variables can be used.
User and job permissions User access levels for performing certain CI actions.
Configuring GitLab Runners Configuring GitLab Runner.
Environments and deployments Deploy the output of jobs into environments for reviewing, staging, and production.
Review Apps Configure GitLab CI/CD to preview code changes.
Job artifacts Using the output of jobs.
Cache dependencies in GitLab CI/CD Speed up pipelines using caching.
Using Git submodules with GitLab CI How to run your CI jobs when using Git submodules.
Using SSH keys with GitLab CI/CD Use SSH keys in your build environment.
Triggering pipelines through the API Use the GitLab API to trigger a pipeline.
Connecting GitLab with a Kubernetes cluster Integrate one or more Kubernetes clusters to your project.
ChatOps Trigger CI jobs from chat, with results sent back to the channel.
Interactive web terminals Open an interactive web terminal to debug the running jobs.
Optimizing GitLab for large repositories Useful tips on how to optimize GitLab and GitLab Runner for big repositories.
Deploy Boards [PREMIUM] Check the current health and status of each CI/CD environment running on Kubernetes.
GitLab CI/CD for external repositories [PREMIUM] Get the benefits of GitLab CI/CD combined with repositories in GitHub and BitBucket Cloud.

GitLab Pages

GitLab CI/CD can be used to build and host static websites. For more information, see the documentation on GitLab Pages, or dive right into the CI/CD step-by-step guide for Pages.

Examples

GitLab provides examples of configuring GitLab CI/CD in the form of:

Administration

As a GitLab administrator, you can change the default behavior of GitLab CI/CD for:

See also:

Using Docker

Docker is commonly used with GitLab CI/CD. Learn more about how to to accomplish this with the following documentation:

Topic Description
Using Docker images Use GitLab and GitLab Runner with Docker to build and test applications.
Building Docker images with GitLab CI/CD Maintain Docker-based projects using GitLab CI/CD.

Related topics include:

Why GitLab CI/CD?

The following articles explain reasons to use GitLab CI/CD for your CI/CD infrastructure:

See also the Why CI/CD? presentation.

Breaking changes

As GitLab CI/CD has evolved, certain breaking changes have been necessary. These are: