summaryrefslogtreecommitdiff
path: root/doc/ci/pipelines.md
diff options
context:
space:
mode:
authorAchilleas Pipinellis <axilleas@axilleas.me>2017-02-14 17:14:58 +0000
committerAchilleas Pipinellis <axilleas@axilleas.me>2017-02-14 17:14:58 +0000
commit815cb8089ea93deb3e97695d80b1ef0d12002f01 (patch)
treefe8095126a4547aafb384f94382c0e4e71e1f51c /doc/ci/pipelines.md
parent87f82f6e7e29da561c7896475d98bebec276885d (diff)
parent293a54a9dbfc02d685296c1872199dece624f901 (diff)
downloadgitlab-ce-815cb8089ea93deb3e97695d80b1ef0d12002f01.tar.gz
Merge branch '27755-pipeline-docs' into 'master'
Document types of pipelines Closes #22631 See merge request !9008
Diffstat (limited to 'doc/ci/pipelines.md')
-rw-r--r--doc/ci/pipelines.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/doc/ci/pipelines.md b/doc/ci/pipelines.md
index 2c7c3ef3c18..ab289876252 100644
--- a/doc/ci/pipelines.md
+++ b/doc/ci/pipelines.md
@@ -13,6 +13,28 @@ executed.
![Pipelines example](img/pipelines.png)
+## Types of Pipelines
+
+There are three types of pipelines that often use the single shorthand of "pipeline". People often talk about them as if each one is "the" pipeline, but really, they're just pieces of a single, comprehensive pipeline.
+
+![Types of Pipelines](img/types-of-pipelines.svg)
+
+1. **CI Pipeline**: Build and test stages defined in `.gitlab-ci.yml`
+2. **Deploy Pipeline**: Deploy stage(s) defined in `.gitlab-ci.yml` The flow of deploying code to servers through various stages: e.g. development to staging to production
+3. **Project Pipeline**: Cross-project CI dependencies [triggered via API]((triggers)), particularly for micro-services, but also for complicated build dependencies: e.g. api -> front-end, ce/ee -> omnibus.
+
+## Development Workflows
+
+Pipelines accommodate several development workflows:
+
+1. **Branch Flow** (e.g. different branch for dev, qa, staging, production)
+2. **Trunk-based Flow** (e.g. feature branches and single master branch, possibly with tags for releases)
+3. **Fork-based Flow** (e.g. merge requests come from forks)
+
+Example continuous delivery flow:
+
+![CD Flow](img/pipelines-goal.svg)
+
## Builds
Builds are individual runs of [jobs]. Not to be confused with a `build` job or