gitlab-org--gitlab-foss/lib
Rémy Coutable eb2d20665f Merge branch 'smart-pipeline-duration' into 'master'
Smartly calculate real running time and pending time

## What does this MR do?

Try to smartly calculate the running time and pending time for pipelines, instead of just use wall clock time from start to end. The algorithm is based on:

> Suppose we have A, B, and C jobs:

> * A: from 1 to 3
> * B: from 2 to 4
> * C: from 6 to 7

> The processing time should be accumulated from 1 to 4, and 6 to 7, totally 4, excluding retires, and calculate on `%w[success failed running canceled]` jobs (if a job is not finished yet, assume it's `Time.now`)

## Are there points in the code the reviewer needs to double check?

I would actually like to test `Gitlab::Ci::PipelineDuration#process_segments`, but it's a private method right now and it's not very convenient to test it. Is there a way to test it without changing the original code too much? Note that I would like to avoid saving merged segments because it's not used and should be garbage collected.

## Screenshots:

![Screen_Shot_2016-09-05_at_6.45.32_PM](/uploads/a82bfaf316661091e383b743a2f11334/Screen_Shot_2016-09-05_at_6.45.32_PM.png)

## Does this MR meet the acceptance criteria?

- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
- Tests
  - [x] Added for this feature/bug

## What are the relevant issue numbers?

Closes #18260, #19804

See merge request !6084
2016-09-08 17:38:20 +00:00
..
api Use PipelinesFinder in Pipelines API 2016-09-07 15:38:03 +02:00
assets
backup lib/backup: fix broken permissions when creating repo dir 2016-08-30 13:35:50 +02:00
banzai Merge branch 'js-tooltips-for-mentions' into 'master' 2016-09-01 14:36:09 +00:00
ci Merge branch 'change-update-interval-of-runners' into 'master' 2016-09-08 10:08:50 +00:00
container_registry Make rubocop happy 2016-07-15 18:05:39 +02:00
gitlab Merge branch 'smart-pipeline-duration' into 'master' 2016-09-08 17:38:20 +00:00
json_web_token Revert "Fix merge conflicts - squashed commit" 2016-06-03 11:10:17 +02:00
omni_auth
rouge/formatters Trim extra displayed carriage returns in diffs and files with CRLFs 2016-08-01 13:24:06 +02:00
support Revert "Defend against 'Host' header injection" 2016-08-08 13:02:44 +02:00
tasks Use File::exist? instead of File::exists? 2016-08-11 13:54:45 +03:00
banzai.rb Object renderer read_multi rendered entries from Cache 2016-07-12 14:35:29 +02:00
disable_email_interceptor.rb Enable Style/EmptyLines cop, remove redundant ones 2016-07-01 21:56:17 +02:00
event_filter.rb Revert "Fix merge conflicts - squashed commit" 2016-06-03 11:10:17 +02:00
extracts_path.rb Restore get_id in ExtractsPath 2016-08-24 12:54:16 +02:00
file_size_validator.rb
file_streamer.rb
gitlab.rb Update Gitlab.com? to support staging 2016-06-27 15:10:36 -04:00
gt_one_coercion.rb
repository_cache.rb Use project ID in repository cache to prevent stale data from persisting across projects 2016-07-25 05:09:28 -07:00
static_model.rb
unfold_form.rb
uploaded_file.rb Enable Style/EmptyLines cop, remove redundant ones 2016-07-01 21:56:17 +02:00
version_check.rb