gitlab-org--gitlab-foss/doc/ci
Evan Read 665d504baa Refactor CI/CD landing page from feedback 2019-03-08 04:17:55 +00:00
..
autodeploy Deprecate Auto Deploy's quick start guide 2019-01-02 15:25:59 +09:00
build_artifacts
caching Docs: Fix all anchors related to YAML 2019-02-22 00:25:06 +00:00
chatops Move ChatOps docs from EE to core 2019-02-21 03:34:42 +00:00
docker Update using_docker_build.md 2019-03-05 19:47:58 +00:00
examples Adds new resources for CI to the documentation suite 2019-03-08 03:34:28 +00:00
img Add up-to-date illustations 2019-03-07 23:35:23 +00:00
interactive_web_terminal Update web terminal note for shared runners 2019-01-30 08:45:40 +01:00
introduction Add up-to-date illustations 2019-03-07 23:35:23 +00:00
merge_request_pipelines Ensure all lists are surrounded by new lines 2019-02-22 13:17:10 +00:00
permissions Exclude comments from specific docs 2017-11-01 15:56:40 +00:00
quick_start Fix pulling from remote rep references 2019-02-02 06:47:09 +00:00
review_apps Fix many 'when manual' anchors 2019-02-06 14:14:23 +10:00
runners Fix wrong docs on untagged jobs 2019-02-17 22:19:43 +00:00
services Update mysql.md 2018-12-21 13:49:20 +00:00
ssh_keys Docs: Fix all anchors related to YAML 2019-02-22 00:25:06 +00:00
triggers Documentation now matches UI copy 2019-01-30 10:20:50 +00:00
variables Fix spelling and other minor improvements 2019-03-06 11:03:48 +00:00
yaml Add missing keywords 2019-03-08 00:33:51 +00:00
README.md Refactor CI/CD landing page from feedback 2019-03-08 04:17:55 +00:00
enable_or_disable_ci.md Exclude comments from specific docs 2017-11-01 15:56:40 +00:00
environments.md Docs: Fix all anchors related to YAML 2019-02-22 00:25:06 +00:00
git_submodules.md Resolve "CE documentation is not CommonMark compliant" 2018-09-06 16:52:18 +00:00
junit_test_reports.md Fix most instances of bare URLs in markdown 2019-01-24 06:52:33 +00:00
pipelines.md Docs: Fix all anchors related to YAML 2019-02-22 00:25:06 +00:00

README.md

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
Introduction to pipelines and jobs Provides an overview of GitLab CI/CD and jobs.
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.
Introduction to environments and deployments Learn how to separate your jobs into environments and use them for different purposes like testing, building and, deploying.
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.

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: