debian-mirror-gitlab/lib/gitlab/ci/build/context/global.rb
2019-12-26 22:10:19 +05:30

41 lines
1.1 KiB
Ruby

# frozen_string_literal: true
module Gitlab
module Ci
module Build
module Context
class Global < Base
include Gitlab::Utils::StrongMemoize
def initialize(pipeline, yaml_variables:)
super(pipeline)
@yaml_variables = yaml_variables.to_a
end
def variables
strong_memoize(:variables) do
# This is a temporary piece of technical debt to allow us access
# to the CI variables to evaluate workflow:rules
# with the result. We should refactor away the extra Build.new,
# but be able to get CI Variables directly from the Seed::Build.
stub_build.scoped_variables_hash
.reject { |key, _value| key =~ /\ACI_(JOB|BUILD)/ }
end
end
private
def stub_build
::Ci::Build.new(build_attributes)
end
def build_attributes
pipeline_attributes.merge(
yaml_variables: @yaml_variables)
end
end
end
end
end
end