diff --git a/lib/gitlab/ci/config/node/global.rb b/lib/gitlab/ci/config/node/global.rb index dffa3326630b1d2d2e9595bd27f9da2769bfdbb2..110d982588b7f7852d8173e6ac67a06753131bf3 100644 --- a/lib/gitlab/ci/config/node/global.rb +++ b/lib/gitlab/ci/config/node/global.rb @@ -39,21 +39,24 @@ module Gitlab helpers :before_script, :image, :services, :after_script, :variables, :stages, :types, :cache, :jobs - def initialize(config) - return super unless config.is_a?(Hash) - - jobs = config.except(*nodes.keys) - global = config.slice(*nodes.keys) - - super(global.merge(jobs: jobs)) + def initialize(config, **attributes) + super(setup(config), attributes) + @global = self end def stages stages_defined? ? stages_value : types_value end - def global - self + private + + def setup(config) + return config unless config.is_a?(Hash) + + jobs = config.except(*nodes.keys) + global = config.slice(*nodes.keys) + + global.merge(jobs: jobs) end end end