From 4a38a3bb2fc0abaad175d9287e17998b6c5bb93b Mon Sep 17 00:00:00 2001 From: Mark Pundsack Date: Mon, 6 Feb 2017 17:30:55 -0600 Subject: [PATCH] Add development workflows --- doc/ci/img/pipelines-goal.svg | 4 ++++ doc/ci/pipelines.md | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 doc/ci/img/pipelines-goal.svg diff --git a/doc/ci/img/pipelines-goal.svg b/doc/ci/img/pipelines-goal.svg new file mode 100644 index 00000000000..a925e2282a4 --- /dev/null +++ b/doc/ci/img/pipelines-goal.svg @@ -0,0 +1,4 @@ + + + + diff --git a/doc/ci/pipelines.md b/doc/ci/pipelines.md index d099628c012..0a9f4631614 100644 --- a/doc/ci/pipelines.md +++ b/doc/ci/pipelines.md @@ -13,7 +13,7 @@ executed. ![Pipelines example](img/pipelines.png) -### Types of Pipelines +## 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. @@ -23,6 +23,18 @@ There are three types of pipelines that often use the single shorthand of "pipel 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 flow: + +![](img/pipelines-goal.svg) + ## Builds Builds are individual runs of [jobs]. Not to be confused with a `build` job or