debian-mirror-gitlab/lib/gitlab/ci/config.rb

74 lines
1.3 KiB
Ruby
Raw Normal View History

module Gitlab
module Ci
##
# Base GitLab CI Configuration facade
#
class Config
2018-11-20 20:47:30 +05:30
ConfigError = Class.new(StandardError)
2018-05-09 12:01:36 +05:30
def initialize(config, opts = {})
2018-11-20 20:47:30 +05:30
@config = Config::Extendable
.new(build_config(config, opts))
.to_hash
2017-08-17 22:00:37 +05:30
@global = Entry::Global.new(@config)
2016-09-29 09:46:39 +05:30
@global.compose!
2018-11-20 20:47:30 +05:30
rescue Loader::FormatError, Extendable::ExtensionError => e
raise Config::ConfigError, e.message
end
2016-08-24 12:49:21 +05:30
def valid?
@global.valid?
end
def errors
@global.errors
end
def to_hash
@config
end
2017-08-17 22:00:37 +05:30
##
# Temporary method that should be removed after refactoring
#
def before_script
@global.before_script_value
end
def image
@global.image_value
end
def services
@global.services_value
end
def after_script
@global.after_script_value
end
def variables
@global.variables_value
end
def stages
@global.stages_value
end
def cache
@global.cache_value
end
def jobs
@global.jobs_value
end
2018-11-20 20:47:30 +05:30
# 'opts' argument is used in EE see /ee/lib/ee/gitlab/ci/config.rb
def build_config(config, opts = {})
Loader.new(config).load!
end
end
end
end