From 6c704fd99e1fd5a86dd2eccc8b192a009546cc96 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon <grzesiek.bizon@gmail.com> Date: Sat, 6 Aug 2016 16:45:02 +0200 Subject: [PATCH] Inject dependencies into each CI config entry node --- lib/gitlab/ci/config/node/configurable.rb | 2 +- lib/gitlab/ci/config/node/entry.rb | 11 +++++++---- lib/gitlab/ci/config/node/global.rb | 6 +++++- lib/gitlab/ci/config/node/job.rb | 2 +- lib/gitlab/ci/config/node/jobs.rb | 2 +- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/gitlab/ci/config/node/configurable.rb b/lib/gitlab/ci/config/node/configurable.rb index 2de82d40c9d..fb3604edac2 100644 --- a/lib/gitlab/ci/config/node/configurable.rb +++ b/lib/gitlab/ci/config/node/configurable.rb @@ -25,7 +25,7 @@ module Gitlab private - def compose! + def compose!(_deps) self.class.nodes.each do |key, factory| factory .value(@config[key]) diff --git a/lib/gitlab/ci/config/node/entry.rb b/lib/gitlab/ci/config/node/entry.rb index 0c782c422b5..40ffa85d6da 100644 --- a/lib/gitlab/ci/config/node/entry.rb +++ b/lib/gitlab/ci/config/node/entry.rb @@ -20,11 +20,14 @@ module Gitlab @validator.validate(:new) end - def process! + def process!(deps = nil) return unless valid? - compose! - descendants.each(&:process!) + compose!(deps) + + descendants.each do |entry| + entry.process!(deps) + end end def leaf? @@ -76,7 +79,7 @@ module Gitlab private - def compose! + def compose!(_deps) end end end diff --git a/lib/gitlab/ci/config/node/global.rb b/lib/gitlab/ci/config/node/global.rb index ccd539fb003..4d65309cf44 100644 --- a/lib/gitlab/ci/config/node/global.rb +++ b/lib/gitlab/ci/config/node/global.rb @@ -36,9 +36,13 @@ module Gitlab helpers :before_script, :image, :services, :after_script, :variables, :stages, :types, :cache, :jobs + def process!(_deps = nil) + super(self) + end + private - def compose! + def compose!(_deps) super compose_jobs! diff --git a/lib/gitlab/ci/config/node/job.rb b/lib/gitlab/ci/config/node/job.rb index e84737acbb9..55f34b446e5 100644 --- a/lib/gitlab/ci/config/node/job.rb +++ b/lib/gitlab/ci/config/node/job.rb @@ -107,7 +107,7 @@ module Gitlab after_script: after_script } end - def compose! + def compose!(_deps) super if type_defined? && !stage_defined? diff --git a/lib/gitlab/ci/config/node/jobs.rb b/lib/gitlab/ci/config/node/jobs.rb index 51683c82ceb..a2a8554ed19 100644 --- a/lib/gitlab/ci/config/node/jobs.rb +++ b/lib/gitlab/ci/config/node/jobs.rb @@ -28,7 +28,7 @@ module Gitlab private - def compose! + def compose!(_deps) @config.each do |name, config| node = hidden?(name) ? Node::HiddenJob : Node::Job -- GitLab