gitlab-org--gitlab-foss/doc/ci
Kamil Trzciński 8a833c720e Allow to use untrusted Regexp via feature flag
This brings support for untrusted regexp for 'only:refs:' when
enabled via feature flag: alllow_unsafe_ruby_regexp.

This is by default disabled, and should not be used in production
2019-04-04 15:00:56 +00: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 Fix note lists throughout docs 2019-03-20 13:45:15 +00:00
docker Fix note lists throughout docs 2019-03-20 13:45:15 +00:00
environments Refactor and restructure environments page 2019-03-26 12:49:24 +10:00
examples Docs: image realignment 2019-04-02 13:31:18 +00: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 Update ci workflow illustration 2019-03-28 15:49:48 +00:00
merge_request_pipelines Docs: image realignment 2019-04-02 13:31:18 +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 Removing redundant "predefined" 2019-04-03 15:40:01 +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 all anchors related to YAML 2019-02-22 00:25:06 +00:00
triggers Docs: image realignment 2019-04-02 13:31:18 +00:00
variables Work around lack of HTML list support in topic 2019-04-04 10:22:13 +00:00
yaml Allow to use untrusted Regexp via feature flag 2019-04-04 15:00:56 +00:00
enable_or_disable_ci.md Exclude comments from specific docs 2017-11-01 15:56:40 +00:00
environments.md Fixes from review 2019-03-27 10:29:18 +10:00
git_submodules.md Resolve "CE documentation is not CommonMark compliant" 2018-09-06 16:52:18 +00:00
junit_test_reports.md Correct Gradle files pattern matching description and example 2019-03-15 17:35:58 +08:00
pipelines.md Docs: Fix more anchors, mostly pipeline related 2019-03-27 04:17:02 +00:00
README.md Docs: Fix anchor to deprecated variables doc 2019-04-02 02:14:00 +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.

Usage

With basic knowledge of how GitLab CI/CD works, the following documentation extends your knowledge into more features:

Topic Description
Creating and using CI/CD pipelines Understand, visualize, create, and use CI/CD pipelines.
CI/CD Variables How environment variables can be configured and made available in pipelines.
Where variables can be used A deeper look into where and how CI/CD variables can be used.
User and job permissions Learn about the access levels a user can have for performing certain CI actions.
Configuring GitLab Runners Documentation for configuring GitLab Runner.
Environments and deployments Deploy the output of jobs into environments for reviewing, staging, and production.
Job artifacts Learn about the output of jobs.
Cache dependencies in GitLab CI/CD Discover how to speed up pipelines using caching.
Using Git submodules with GitLab CI How to run your CI jobs when using Git submodules.
Pipelines for merge requests Create pipelines specifically for merge requests.
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.
Pipeline schedules Trigger pipelines on a schedule.
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.
Review Apps Configure GitLab CI/CD to preview code changes in a per-branch basis.
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: