Class: Gitlab::Ci::Pipeline::Seed::Build
- Includes:
- Utils::StrongMemoize
- Defined in:
- lib/gitlab/ci/pipeline/seed/build.rb,
lib/gitlab/ci/pipeline/seed/build/cache.rb
Defined Under Namespace
Classes: Cache
Instance Method Summary collapse
- #attributes ⇒ Object
- #bridge? ⇒ Boolean
- #errors ⇒ Object
- #included? ⇒ Boolean
-
#initialize(context, attributes, stages_for_needs_lookup) ⇒ Build
constructor
A new instance of Build.
- #name ⇒ Object
- #to_resource ⇒ Object
Constructor Details
#initialize(context, attributes, stages_for_needs_lookup) ⇒ Build
Returns a new instance of Build.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/gitlab/ci/pipeline/seed/build.rb', line 12 def initialize(context, attributes, stages_for_needs_lookup) @context = context @pipeline = context.pipeline @seed_attributes = attributes @stages_for_needs_lookup = stages_for_needs_lookup.compact @needs_attributes = dig(:needs_attributes) @resource_group_key = attributes.delete(:resource_group_key) @job_variables = @seed_attributes.delete(:job_variables) @root_variables_inheritance = @seed_attributes.delete(:root_variables_inheritance) { true } @using_rules = attributes.key?(:rules) @using_only = attributes.key?(:only) @using_except = attributes.key?(:except) @only = Gitlab::Ci::Build::Policy .fabricate(attributes.delete(:only)) @except = Gitlab::Ci::Build::Policy .fabricate(attributes.delete(:except)) @rules = Gitlab::Ci::Build::Rules .new(attributes.delete(:rules), default_when: attributes[:when]) @cache = Gitlab::Ci::Build::Cache .new(attributes.delete(:cache), @pipeline) calculate_yaml_variables! end |
Instance Method Details
#attributes ⇒ Object
66 67 68 69 70 71 72 73 |
# File 'lib/gitlab/ci/pipeline/seed/build.rb', line 66 def attributes @seed_attributes .deep_merge(pipeline_attributes) .deep_merge(rules_attributes) .deep_merge(allow_failure_criteria_attributes) .deep_merge(@cache.cache_attributes) .deep_merge() end |
#bridge? ⇒ Boolean
75 76 77 78 79 80 |
# File 'lib/gitlab/ci/pipeline/seed/build.rb', line 75 def bridge? attributes_hash = @seed_attributes.to_h attributes_hash.dig(:options, :trigger).present? || (attributes_hash.dig(:options, :bridge_needs).instance_of?(Hash) && attributes_hash.dig(:options, :bridge_needs, :pipeline).present?) end |
#errors ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/gitlab/ci/pipeline/seed/build.rb', line 55 def errors logger.instrument(:pipeline_seed_build_errors) do # We check rules errors before checking "included?" because rules affects its inclusion status. next rules_errors if rules_errors next unless included? [needs_errors, variable_expansion_errors].compact.flatten end end |
#included? ⇒ Boolean
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/gitlab/ci/pipeline/seed/build.rb', line 42 def included? logger.instrument(:pipeline_seed_build_inclusion) do if @using_rules rules_result.pass? elsif @using_only || @using_except all_of_only? && none_of_except? else true end end end |
#name ⇒ Object
38 39 40 |
# File 'lib/gitlab/ci/pipeline/seed/build.rb', line 38 def name dig(:name) end |