42 lines
1.1 KiB
Ruby
42 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
|