Module: Enums::Ci::Pipeline

Defined in:
app/models/concerns/enums/ci/pipeline.rb

Class Method Summary collapse

Class Method Details

.ci_sourcesObject

CI sources are those pipeline events that affect the CI status of the ref they run for. By definition it excludes dangling pipelines.


52
53
54
# File 'app/models/concerns/enums/ci/pipeline.rb', line 52

def self.ci_sources
  sources.except(*dangling_sources.keys)
end

.config_sourcesObject

Returns the `Hash` to use for creating the `config_sources` enum for `Ci::Pipeline`.


58
59
60
61
62
63
64
65
66
67
68
69
# File 'app/models/concerns/enums/ci/pipeline.rb', line 58

def self.config_sources
  {
    unknown_source: nil,
    repository_source: 1,
    auto_devops_source: 2,
    webide_source: 3,
    remote_source: 4,
    external_project_source: 5,
    bridge_source: 6,
    parameter_source: 7
  }
end

.dangling_sourcesObject

Dangling sources are those events that generate pipelines for which we don't want to directly affect the ref CI status.

  • when a webide pipeline fails it does not change the ref CI status to failed

  • when a child pipeline (from parent_pipeline source) fails it affects its parent pipeline. It's up to the parent to affect the ref CI status

  • when an ondemand_dast_scan pipeline runs it is for testing purpose and should not affect the ref CI status.


46
47
48
# File 'app/models/concerns/enums/ci/pipeline.rb', line 46

def self.dangling_sources
  sources.slice(:webide, :parent_pipeline, :ondemand_dast_scan)
end

.failure_reasonsObject

Returns the `Hash` to use for creating the `failure_reason` enum for `Ci::Pipeline`.


8
9
10
11
12
13
14
# File 'app/models/concerns/enums/ci/pipeline.rb', line 8

def self.failure_reasons
  {
    unknown_failure: 0,
    config_error: 1,
    external_validation_failure: 2
  }
end

.sourcesObject

Returns the `Hash` to use for creating the `sources` enum for `Ci::Pipeline`.


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/models/concerns/enums/ci/pipeline.rb', line 18

def self.sources
  {
    unknown: nil,
    push: 1,
    web: 2,
    trigger: 3,
    schedule: 4,
    api: 5,
    external: 6,
    # TODO: Rename `pipeline` to `cross_project_pipeline` in 13.0
    # https://gitlab.com/gitlab-org/gitlab/issues/195991
    pipeline: 7,
    chat: 8,
    webide: 9,
    merge_request_event: 10,
    external_pull_request_event: 11,
    parent_pipeline: 12,
    ondemand_dast_scan: 13
  }
end