From d79ad28fcb44c35d77de26d428ae61bc6d71e8ec Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Mon, 18 Sep 2017 14:29:43 +0200 Subject: Do not pass project path from YAML processor Use project full path that can be received from a pipeline object --- lib/gitlab/ci/build/policy/kubernetes.rb | 2 +- lib/gitlab/ci/build/policy/refs.rb | 12 ++++++------ lib/gitlab/ci/build/policy/specification.rb | 4 ++-- lib/gitlab/ci/yaml_processor.rb | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) (limited to 'lib') diff --git a/lib/gitlab/ci/build/policy/kubernetes.rb b/lib/gitlab/ci/build/policy/kubernetes.rb index bf3a95e08f0..b20d374288f 100644 --- a/lib/gitlab/ci/build/policy/kubernetes.rb +++ b/lib/gitlab/ci/build/policy/kubernetes.rb @@ -9,7 +9,7 @@ module Gitlab end end - def satisfied_by?(pipeline, **_) + def satisfied_by?(pipeline) pipeline.has_kubernetes_active? end end diff --git a/lib/gitlab/ci/build/policy/refs.rb b/lib/gitlab/ci/build/policy/refs.rb index 76a57f041e3..eadc0948d2f 100644 --- a/lib/gitlab/ci/build/policy/refs.rb +++ b/lib/gitlab/ci/build/policy/refs.rb @@ -7,21 +7,21 @@ module Gitlab @patterns = Array(refs) end - def satisfied_by?(pipeline, path: nil) + def satisfied_by?(pipeline) @patterns.any? do |pattern| - pattern, ref_path = pattern.split('@', 2) + pattern, path = pattern.split('@', 2) - matches_path?(ref_path, path) && + matches_path?(path, pipeline) && matches_pattern?(pattern, pipeline) end end private - def matches_path?(ref_path, expected_path) - return true unless ref_path + def matches_path?(path, pipeline) + return true unless path - expected_path == ref_path + pipeline.project_full_path == path end def matches_pattern?(pattern, pipeline) diff --git a/lib/gitlab/ci/build/policy/specification.rb b/lib/gitlab/ci/build/policy/specification.rb index 9ca3582b9b0..c317291f29d 100644 --- a/lib/gitlab/ci/build/policy/specification.rb +++ b/lib/gitlab/ci/build/policy/specification.rb @@ -3,7 +3,7 @@ module Gitlab module Build module Policy ## - # Abstract class that defines an intereface of job policy + # Abstract class that defines an interface of job policy # specification. # # Used for job's only/except policy configuration. @@ -15,7 +15,7 @@ module Gitlab @spec = spec end - def satisfied_by?(pipeline, **metadata) + def satisfied_by?(pipeline) raise NotImplementedError end end diff --git a/lib/gitlab/ci/yaml_processor.rb b/lib/gitlab/ci/yaml_processor.rb index 3a7a2761db8..da39a28df4c 100644 --- a/lib/gitlab/ci/yaml_processor.rb +++ b/lib/gitlab/ci/yaml_processor.rb @@ -63,8 +63,8 @@ module Gitlab except_specs = Gitlab::Ci::Build::Policy .fabricate(job.fetch(:except, {})) - only_specs.all? { |spec| spec.satisfied_by?(pipeline, path: @path) } && - except_specs.none? { |spec| spec.satisfied_by?(pipeline, path: @path) } + only_specs.all? { |spec| spec.satisfied_by?(pipeline) } && + except_specs.none? { |spec| spec.satisfied_by?(pipeline) } end selected_jobs.map { |_, job| build_attributes(job[:name]) } -- cgit v1.2.1