summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Griffith <dyl.griffith@gmail.com>2018-08-10 14:24:08 +0100
committerDylan Griffith <dyl.griffith@gmail.com>2018-08-13 10:52:42 +0100
commit9e5d476f6396875d3f7cb7a95c9fe63a850495fb (patch)
treed94a0b576c21c48919efd00412c718a839332686
parente1e26772247c1ec9f82aa62fa0166c56d896f79d (diff)
downloadgitlab-ce-9e5d476f6396875d3f7cb7a95c9fe63a850495fb.tar.gz
Add feature flag to force rollout of auto devops on a per project basis
-rw-r--r--app/models/project.rb4
-rw-r--r--spec/models/project_spec.rb13
2 files changed, 16 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 40094639d70..5d8e31ca565 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -27,6 +27,7 @@ class Project < ActiveRecord::Base
include FastDestroyAll::Helpers
include WithUploads
include BatchDestroyDependentAssociations
+ include FeatureGate
extend Gitlab::Cache::RequestCache
extend Gitlab::ConfigHelper
@@ -526,7 +527,8 @@ class Project < ActiveRecord::Base
end
def has_auto_devops_implicitly_enabled?
- auto_devops&.enabled.nil? && Gitlab::CurrentSettings.auto_devops_enabled?
+ auto_devops&.enabled.nil? &&
+ (Gitlab::CurrentSettings.auto_devops_enabled? || Feature.enabled?(:force_autodevops_on_by_default, self))
end
def has_auto_devops_implicitly_disabled?
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 7bcce20c15e..d15d4b1406e 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -3259,6 +3259,11 @@ describe Project do
end
describe '#auto_devops_enabled?' do
+ before do
+ allow(Feature).to receive(:enabled?).and_call_original
+ Feature.get(:force_autodevops_on_by_default).enable_percentage_of_actors(0)
+ end
+
set(:project) { create(:project) }
subject { project.auto_devops_enabled? }
@@ -3301,6 +3306,14 @@ describe Project do
it { is_expected.to be_truthy }
end
+
+ context 'when force_autodevops_on_by_default is enabled for the project' do
+ before do
+ Feature.get(:force_autodevops_on_by_default).enable_percentage_of_actors(100)
+ end
+
+ it { is_expected.to be_truthy }
+ end
end
end