Skip to content
Snippets Groups Projects
Commit eaf211c2 authored by Grzegorz Bizon's avatar Grzegorz Bizon
Browse files

Expose compose method in the ci config entry nodes

parent 700078e8
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -14,7 +14,7 @@ module Gitlab
@config = Loader.new(config).load!
 
@global = Node::Global.new(@config)
@global.process!
@global.compose!
end
 
def valid?
Loading
Loading
Loading
Loading
@@ -23,9 +23,9 @@ module Gitlab
end
end
 
private
def compose!(deps)
return unless valid?
 
def compose!(_deps)
self.class.nodes.each do |key, factory|
factory
.value(@config[key])
Loading
Loading
@@ -33,6 +33,12 @@ module Gitlab
 
@entries[key] = factory.create!
end
yield if block_given?
@entries.each_value do |entry|
entry.compose!(deps)
end
end
 
class_methods do
Loading
Loading
Loading
Loading
@@ -20,14 +20,16 @@ module Gitlab
@validator.validate(:new)
end
 
# Temporary method
#
def process!(deps = nil)
return unless valid?
compose!(deps)
end
 
descendants.each do |entry|
entry.process!(deps)
end
def compose!(deps = nil)
return unless valid?
yield if block_given?
end
 
def leaf?
Loading
Loading
@@ -76,11 +78,6 @@ module Gitlab
def self.validator
Validator
end
private
def compose!(_deps)
end
end
end
end
Loading
Loading
Loading
Loading
@@ -36,19 +36,15 @@ module Gitlab
helpers :before_script, :image, :services, :after_script,
:variables, :stages, :types, :cache, :jobs
 
def process!(_deps = nil)
super(self)
def compose!(_deps = nil)
super(self) do
compose_jobs!
compose_deprecated_entries!
end
end
 
private
 
def compose!(_deps)
super
compose_jobs!
compose_deprecated_entries!
end
def compose_jobs!
factory = Node::Factory.new(Node::Jobs)
.value(@config.except(*self.class.nodes.keys))
Loading
Loading
Loading
Loading
@@ -82,6 +82,16 @@ module Gitlab
:cache, :image, :services, :only, :except, :variables,
:artifacts
 
def compose!(deps)
super do
if type_defined? && !stage_defined?
@entries[:stage] = @entries[:type]
end
@entries.delete(:type)
end
end
def name
@metadata[:name]
end
Loading
Loading
@@ -106,16 +116,6 @@ module Gitlab
artifacts: artifacts,
after_script: after_script }
end
def compose!(_deps)
super
if type_defined? && !stage_defined?
@entries[:stage] = @entries[:type]
end
@entries.delete(:type)
end
end
end
end
Loading
Loading
Loading
Loading
@@ -26,19 +26,23 @@ module Gitlab
name.to_s.start_with?('.')
end
 
private
def compose!(_deps)
@config.each do |name, config|
node = hidden?(name) ? Node::HiddenJob : Node::Job
factory = Node::Factory.new(node)
.value(config || {})
.metadata(name: name)
.with(key: name, parent: self,
description: "#{name} job definition.")
def compose!(deps = nil)
super do
@config.each do |name, config|
node = hidden?(name) ? Node::HiddenJob : Node::Job
factory = Node::Factory.new(node)
.value(config || {})
.metadata(name: name)
.with(key: name, parent: self,
description: "#{name} job definition.")
@entries[name] = factory.create!
end
 
@entries[name] = factory.create!
@entries.each_value do |entry|
entry.compose!(deps)
end
end
end
end
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment