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 ...@@ -9,7 +9,7 @@ module Gitlab
end end
end end
def satisfied_by?(pipeline, _attributes = nil) def satisfied_by?(pipeline, _build = nil)
pipeline.has_kubernetes_active? pipeline.has_kubernetes_active?
end end
end end
......
...@@ -7,7 +7,7 @@ module Gitlab ...@@ -7,7 +7,7 @@ module Gitlab
@patterns = Array(refs) @patterns = Array(refs)
end end
def satisfied_by?(pipeline, _attributes = nil) def satisfied_by?(pipeline, _build = nil)
@patterns.any? do |pattern| @patterns.any? do |pattern|
pattern, path = pattern.split('@', 2) pattern, path = pattern.split('@', 2)
......
...@@ -15,7 +15,7 @@ module Gitlab ...@@ -15,7 +15,7 @@ module Gitlab
@spec = spec @spec = spec
end end
def satisfied_by?(pipeline, attributes = nil) def satisfied_by?(pipeline, build = nil)
raise NotImplementedError raise NotImplementedError
end end
end end
......
...@@ -7,7 +7,7 @@ module Gitlab ...@@ -7,7 +7,7 @@ module Gitlab
@expressions = Array(expressions) @expressions = Array(expressions)
end end
def satisfied_by?(pipeline, attributes) def satisfied_by?(pipeline, build)
statements = @expressions.map do |statement| statements = @expressions.map do |statement|
::Gitlab::Ci::Pipeline::Expression::Statement ::Gitlab::Ci::Pipeline::Expression::Statement
.new(statement, pipeline) .new(statement, pipeline)
......
...@@ -19,10 +19,10 @@ module Gitlab ...@@ -19,10 +19,10 @@ module Gitlab
return if pipeline.nil? return if pipeline.nil?
# temporary refactoring stubs # REFACTORING, temporary refactoring stubs
# #
@variables = pipeline.project.predefined_variables.map do |variable| @variables = pipeline.project.predefined_variables.map do |variable|
[variable.fetch(:key), variable.fetch(:value)] [variable[:key], variable[:value]]
end end
@variables += pipeline.variables.map do |variable| @variables += pipeline.variables.map do |variable|
...@@ -30,7 +30,7 @@ module Gitlab ...@@ -30,7 +30,7 @@ module Gitlab
end end
@variables += pipeline.predefined_variables.map do |variable| @variables += pipeline.predefined_variables.map do |variable|
[variable.fetch(:key), variable.fetch(:value)] [variable[:key], variable[:value]]
end end
end end
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Ci::Build::Policy::Variables do describe Gitlab::Ci::Build::Policy::Variables do
let(:pipeline) { build(:ci_pipeline, ref: 'master') } let(:pipeline) { build_stubbed(:ci_empty_pipeline, ref: 'master') }
let(:attributes) { double(:attributes) } let(:build) { build_stubbed(:ci_build, pipeline: pipeline, ref: 'master') }
before do before do
pipeline.variables.build(key: 'CI_PROJECT_NAME', value: '') pipeline.variables.build(key: 'CI_PROJECT_NAME', value: '')
...@@ -12,31 +12,31 @@ describe Gitlab::Ci::Build::Policy::Variables do ...@@ -12,31 +12,31 @@ describe Gitlab::Ci::Build::Policy::Variables do
it 'is satisfied by a defined and existing variable' do it 'is satisfied by a defined and existing variable' do
policy = described_class.new(['$CI_PROJECT_ID', '$UNDEFINED']) 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 end
it 'is not satisfied by an overriden empty variable' do it 'is not satisfied by an overriden empty variable' do
policy = described_class.new(['$CI_PROJECT_NAME']) 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 end
it 'is satisfied by a truthy pipeline expression' do it 'is satisfied by a truthy pipeline expression' do
policy = described_class.new([%($CI_PIPELINE_SOURCE == "#{pipeline.source}")]) 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 end
it 'is not satisfied by a falsy pipeline expression' do it 'is not satisfied by a falsy pipeline expression' do
policy = described_class.new([%($CI_PIPELINE_SOURCE == "invalid source")]) 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 end
it 'is satisfied by a truthy expression using undefined variable' do it 'is satisfied by a truthy expression using undefined variable' do
policy = described_class.new(['$UNDEFINED', '$UNDEFINED == null']) 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 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