diff options
Diffstat (limited to 'qa/qa/runtime/release.rb')
-rw-r--r-- | qa/qa/runtime/release.rb | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/qa/qa/runtime/release.rb b/qa/qa/runtime/release.rb index e3da00a1881..40d24e8d342 100644 --- a/qa/qa/runtime/release.rb +++ b/qa/qa/runtime/release.rb @@ -2,35 +2,32 @@ module QA module Runtime ## # Class that is responsible for plugging CE/EE extensions in, depending on - # environment variable GITLAB_RELEASE that should be present in the runtime - # environment. + # existence of EE module. # # We need that to reduce the probability of conflicts when merging # CE to EE. # class Release - UnspecifiedReleaseError = Class.new(StandardError) - - def initialize(version = ENV['GITLAB_RELEASE']) - @version = version.to_s.upcase - - unless %w[CE EE].include?(@version) - raise UnspecifiedReleaseError, 'GITLAB_RELEASE env not defined!' - end + def initialize(variant = nil) + @version = variant || version begin - require "qa/#{version.downcase}/strategy" + require "qa/#{@version.downcase}/strategy" rescue LoadError # noop end end + def version + File.directory?("#{__dir__}/../ee") ? :EE : :CE + end + def has_strategy? - QA.const_defined?("#{@version}::Strategy") + QA.const_defined?("QA::#{@version}::Strategy") end def strategy - QA.const_get("#{@version}::Strategy") + QA.const_get("QA::#{@version}::Strategy") end def self.method_missing(name, *args) |