summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-12-20 11:43:33 +0000
committerRémy Coutable <remy@rymai.me>2016-12-20 11:43:33 +0000
commit68e3d38a82c74eda2027f9655777fd9006a1bd08 (patch)
treeac90ccb87f8167e3e9838780424d99023d5f8450 /doc
parent49ed235de9d58563a817801647bd9029e95d6506 (diff)
parent7b664858ff33832cf62fe56322be0cfe04cbbc7d (diff)
downloadgitlab-ce-68e3d38a82c74eda2027f9655777fd9006a1bd08.tar.gz
Merge branch 'doc-for-pipeline-duration' into 'master'
Add doc for pipeline duration The description was copied and modified from !6084 See merge request !6445
Diffstat (limited to 'doc')
-rw-r--r--doc/ci/pipelines.md31
1 files changed, 31 insertions, 0 deletions
diff --git a/doc/ci/pipelines.md b/doc/ci/pipelines.md
index 03b9c4bb444..f91b9d350f7 100644
--- a/doc/ci/pipelines.md
+++ b/doc/ci/pipelines.md
@@ -36,6 +36,37 @@ Clicking on a pipeline will show the builds that were run for that pipeline.
Clicking on an individual build will show you its build trace, and allow you to
cancel the build, retry it, or erase the build trace.
+## How the pipeline duration is calculated
+
+Total running time for a given pipeline would exclude retries and pending
+(queue) time. We could reduce this problem down to finding the union of
+periods.
+
+So each job would be represented as a `Period`, which consists of
+`Period#first` as when the job started and `Period#last` as when the
+job was finished. A simple example here would be:
+
+* A (1, 3)
+* B (2, 4)
+* C (6, 7)
+
+Here A begins from 1, and ends to 3. B begins from 2, and ends to 4.
+C begins from 6, and ends to 7. Visually it could be viewed as:
+
+```
+0 1 2 3 4 5 6 7
+ AAAAAAA
+ BBBBBBB
+ CCCC
+```
+
+The union of A, B, and C would be (1, 4) and (6, 7), therefore the
+total running time should be:
+
+```
+(4 - 1) + (7 - 6) => 4
+```
+
## Badges
Build status and test coverage report badges are available. You can find their