summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzegorz@gitlab.com>2019-06-18 08:04:32 +0000
committerGrzegorz Bizon <grzegorz@gitlab.com>2019-06-18 08:04:32 +0000
commit077bb1b299196a5f500121c6f60d22026d3407b5 (patch)
tree14b8f8de0b421e3a99eb42bb544c7fc983905820
parent289ca35df404b9600d1917b6b417126dbcf47414 (diff)
parent7ac3723be04ba08cb476ba628cb5c1573ca832c9 (diff)
downloadgitlab-ce-077bb1b299196a5f500121c6f60d22026d3407b5.tar.gz
Merge branch 'mc/feature/required-template-inclusion-single-commit-ce' into 'master'
Enforce template inclusion in pipelines - CE See merge request gitlab-org/gitlab-ce!29296
-rw-r--r--db/migrate/20190527011309_add_required_template_name_to_application_settings.rb15
-rw-r--r--db/schema.rb1
-rw-r--r--lib/gitlab/ci/config.rb15
3 files changed, 28 insertions, 3 deletions
diff --git a/db/migrate/20190527011309_add_required_template_name_to_application_settings.rb b/db/migrate/20190527011309_add_required_template_name_to_application_settings.rb
new file mode 100644
index 00000000000..6cbac0ed507
--- /dev/null
+++ b/db/migrate/20190527011309_add_required_template_name_to_application_settings.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+# See http://doc.gitlab.com/ce/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class AddRequiredTemplateNameToApplicationSettings < ActiveRecord::Migration[5.1]
+ include Gitlab::Database::MigrationHelpers
+
+ # Set this constant to true if this migration requires downtime.
+ DOWNTIME = false
+
+ def change
+ add_column :application_settings, :required_instance_ci_template, :string, null: true
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index b003fdd5a9b..20e0050ac61 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -194,6 +194,7 @@ ActiveRecord::Schema.define(version: 20190613030606) do
t.integer "elasticsearch_replicas", default: 1, null: false
t.text "encrypted_lets_encrypt_private_key"
t.text "encrypted_lets_encrypt_private_key_iv"
+ t.string "required_instance_ci_template"
t.boolean "dns_rebinding_protection_enabled", default: true, null: false
t.boolean "default_project_deletion_protection", default: false, null: false
t.boolean "lock_memberships_to_ldap", default: false, null: false
diff --git a/lib/gitlab/ci/config.rb b/lib/gitlab/ci/config.rb
index f187e456993..a0275515906 100644
--- a/lib/gitlab/ci/config.rb
+++ b/lib/gitlab/ci/config.rb
@@ -8,6 +8,12 @@ module Gitlab
class Config
ConfigError = Class.new(StandardError)
+ RESCUE_ERRORS = [
+ Gitlab::Config::Loader::FormatError,
+ Extendable::ExtensionError,
+ External::Processor::IncludeError
+ ].freeze
+
def initialize(config, project: nil, sha: nil, user: nil)
@config = Config::Extendable
.new(build_config(config, project: project, sha: sha, user: user))
@@ -15,9 +21,7 @@ module Gitlab
@global = Entry::Global.new(@config)
@global.compose!
- rescue Gitlab::Config::Loader::FormatError,
- Extendable::ExtensionError,
- External::Processor::IncludeError => e
+ rescue *rescue_errors => e
raise Config::ConfigError, e.message
end
@@ -83,6 +87,11 @@ module Gitlab
user: user,
expandset: Set.new).perform
end
+
+ # Overriden in EE
+ def rescue_errors
+ RESCUE_ERRORS
+ end
end
end
end