Commit 0335d09e authored by Grzegorz Bizon's avatar Grzegorz Bizon

Integrate variables policy with new pipeline services

parent f2ec6c1c
......@@ -9,7 +9,7 @@ module Gitlab
end
end
def satisfied_by?(pipeline, _attributes = nil)
def satisfied_by?(pipeline, _build = nil)
pipeline.has_kubernetes_active?
end
end
......
......@@ -7,7 +7,7 @@ module Gitlab
@patterns = Array(refs)
end
def satisfied_by?(pipeline, _attributes = nil)
def satisfied_by?(pipeline, _build = nil)
@patterns.any? do |pattern|
pattern, path = pattern.split('@', 2)
......
......@@ -15,7 +15,7 @@ module Gitlab
@spec = spec
end
def satisfied_by?(pipeline, attributes = nil)
def satisfied_by?(pipeline, build = nil)
raise NotImplementedError
end
end
......
......@@ -7,7 +7,7 @@ module Gitlab
@expressions = Array(expressions)
end
def satisfied_by?(pipeline, attributes)
def satisfied_by?(pipeline, build)
statements = @expressions.map do |statement|
::Gitlab::Ci::Pipeline::Expression::Statement
.new(statement, pipeline)
......
......@@ -19,10 +19,10 @@ module Gitlab
return if pipeline.nil?
# temporary refactoring stubs
# REFACTORING, temporary refactoring stubs
#
@variables = pipeline.project.predefined_variables.map do |variable|
[variable.fetch(:key), variable.fetch(:value)]
[variable[:key], variable[:value]]
end
@variables += pipeline.variables.map do |variable|
......@@ -30,7 +30,7 @@ module Gitlab
end
@variables += pipeline.predefined_variables.map do |variable|
[variable.fetch(:key), variable.fetch(:value)]
[variable[:key], variable[:value]]
end
end
......
require 'spec_helper'
describe Gitlab::Ci::Build::Policy::Variables do
let(:pipeline) { build(:ci_pipeline, ref: 'master') }
let(:attributes) { double(:attributes) }
let(:pipeline) { build_stubbed(:ci_empty_pipeline, ref: 'master') }
let(:build) { build_stubbed(:ci_build, pipeline: pipeline, ref: 'master') }
before do
pipeline.variables.build(key: 'CI_PROJECT_NAME', value: '')
......@@ -12,31 +12,31 @@ describe Gitlab::Ci::Build::Policy::Variables do
it 'is satisfied by a defined and existing variable' do
policy = described_class.new(['$CI_PROJECT_ID', '$UNDEFINED'])
expect(policy).to be_satisfied_by(pipeline, attributes)
expect(policy).to be_satisfied_by(pipeline, build)
end
it 'is not satisfied by an overriden empty variable' do
policy = described_class.new(['$CI_PROJECT_NAME'])
expect(policy).not_to be_satisfied_by(pipeline, attributes)
expect(policy).not_to be_satisfied_by(pipeline, build)
end
it 'is satisfied by a truthy pipeline expression' do
policy = described_class.new([%($CI_PIPELINE_SOURCE == "#{pipeline.source}")])
expect(policy).to be_satisfied_by(pipeline, attributes)
expect(policy).to be_satisfied_by(pipeline, build)
end
it 'is not satisfied by a falsy pipeline expression' do
policy = described_class.new([%($CI_PIPELINE_SOURCE == "invalid source")])
expect(policy).not_to be_satisfied_by(pipeline, attributes)
expect(policy).not_to be_satisfied_by(pipeline, build)
end
it 'is satisfied by a truthy expression using undefined variable' do
policy = described_class.new(['$UNDEFINED', '$UNDEFINED == null'])
expect(policy).to be_satisfied_by(pipeline, attributes)
expect(policy).to be_satisfied_by(pipeline, build)
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment