summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2016-09-21 19:55:43 +0800
committerAchilleas Pipinellis <axilleas@axilleas.me>2016-12-15 23:03:42 +0100
commit7b664858ff33832cf62fe56322be0cfe04cbbc7d (patch)
tree77e0d97c99c8b210bc648713a00c4ad3667806a7
parent1e1887697d212d8b21f3be3d80247787159e49c5 (diff)
downloadgitlab-ce-doc-for-pipeline-duration.tar.gz
Add docs for pipeline durationdoc-for-pipeline-duration
-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