summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-08-31 14:56:25 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-08-31 14:56:25 +0200
commitef030709ebffdecdce67f2693d8c54669edfb7a7 (patch)
treec1115d74b7aa6c56150e97e05360d1c71e7ac3dc /lib
parent92673c2c63c5928279fdb1985357fa8596c97397 (diff)
downloadgitlab-ce-ef030709ebffdecdce67f2693d8c54669edfb7a7.tar.gz
Change kubernetes job policy allowed values
It is now possible to use `kubernetes: configured`.
Diffstat (limited to 'lib')
-rw-r--r--lib/ci/gitlab_ci_yaml_processor.rb5
-rw-r--r--lib/gitlab/ci/config/entry/policy.rb2
-rw-r--r--lib/gitlab/ci/config/entry/validators.rb8
3 files changed, 11 insertions, 4 deletions
diff --git a/lib/ci/gitlab_ci_yaml_processor.rb b/lib/ci/gitlab_ci_yaml_processor.rb
index 5676618f7fd..434b8948f41 100644
--- a/lib/ci/gitlab_ci_yaml_processor.rb
+++ b/lib/ci/gitlab_ci_yaml_processor.rb
@@ -94,12 +94,11 @@ module Ci
except_kubernetes = job.dig(:except, :kubernetes)
[!only_kubernetes && !except_kubernetes,
- only_kubernetes && has_kubernetes,
- except_kubernetes && !has_kubernetes].any?
+ only_kubernetes && has_kubernetes,
+ except_kubernetes && !has_kubernetes].any?
end
end
-
def jobs_for_ref(ref, tag = false, source = nil)
@jobs.select do |_, job|
process?(job.dig(:only, :refs), job.dig(:except, :refs), ref, tag, source)
diff --git a/lib/gitlab/ci/config/entry/policy.rb b/lib/gitlab/ci/config/entry/policy.rb
index a8bba3d3ea4..922d568f0ab 100644
--- a/lib/gitlab/ci/config/entry/policy.rb
+++ b/lib/gitlab/ci/config/entry/policy.rb
@@ -33,7 +33,7 @@ module Gitlab
with_options allow_nil: true do
validates :refs, array_of_strings_or_regexps: true
- validates :kubernetes, inclusion: { in: [true] }
+ validates :kubernetes, allowed_values: %w[configured]
end
end
end
diff --git a/lib/gitlab/ci/config/entry/validators.rb b/lib/gitlab/ci/config/entry/validators.rb
index b2ca3c881e4..0159179f0a9 100644
--- a/lib/gitlab/ci/config/entry/validators.rb
+++ b/lib/gitlab/ci/config/entry/validators.rb
@@ -14,6 +14,14 @@ module Gitlab
end
end
+ class AllowedValuesValidator < ActiveModel::EachValidator
+ def validate_each(record, attribute, value)
+ unless options[:in].include?(value.to_s)
+ record.errors.add(attribute, "unknown value: #{value}")
+ end
+ end
+ end
+
class ArrayOfStringsValidator < ActiveModel::EachValidator
include LegacyValidationHelpers