Skip to content
代码片段 群组 项目
提交 2e2e4233 编辑于 作者: Shinya Maeda's avatar Shinya Maeda
浏览文件

Merge branch '370628-feature-flag-rollout-of-prevent_outdated_deployment_jobs' into 'master'

Enable `prevent_rollback_deployment?` permanently

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/100983



Merged-by: default avatarShinya Maeda <shinya@gitlab.com>
Approved-by: default avatarAlishan Ladhani <aladhani@gitlab.com>
Approved-by: default avatarShinya Maeda <shinya@gitlab.com>
Co-authored-by: default avatarAllen Cook <acook@gitlab.com>
No related branches found
No related tags found
无相关合并请求
......@@ -455,8 +455,7 @@ def waiting_for_deployment_approval?
def prevent_rollback_deployment?
strong_memoize(:prevent_rollback_deployment) do
Feature.enabled?(:prevent_outdated_deployment_jobs, project) &&
starts_environment? &&
starts_environment? &&
project.ci_forward_deployment_enabled? &&
deployment&.older_than_last_successful_deployment?
end
......
......@@ -105,6 +105,7 @@ class Deployment < ApplicationRecord
after_transition any => :running do |deployment|
next unless deployment.project.ci_forward_deployment_enabled?
next if Feature.enabled?(:prevent_outdated_deployment_jobs, deployment.project)
deployment.run_after_commit do
Deployments::DropOlderDeploymentsWorker.perform_async(id)
......
......@@ -25,6 +25,8 @@ def process(build)
end
def enqueue(build)
return build.drop!(:failed_outdated_deployment_job) if build.prevent_rollback_deployment?
build.enqueue
end
......
......@@ -23,8 +23,6 @@ def enqueue(build)
return build.drop!(:protected_environment_failure)
end
return build.drop!(:failed_outdated_deployment_job) if build.prevent_rollback_deployment?
super
end
end
......
......@@ -632,15 +632,6 @@
it { expect(subject).to be_falsey }
end
context 'when prevent_outdated_deployment_jobs FF is disabled' do
before do
stub_feature_flags(prevent_outdated_deployment_jobs: false)
expect(build.deployment).not_to receive(:rollback?)
end
it { expect(subject).to be_falsey }
end
context 'when build can prevent rollback deployment' do
before do
expect(build.deployment).to receive(:older_than_last_successful_deployment?).and_return(true)
......
......@@ -171,11 +171,22 @@
end
it 'executes Deployments::DropOlderDeploymentsWorker asynchronously' do
stub_feature_flags(prevent_outdated_deployment_jobs: false)
expect(Deployments::DropOlderDeploymentsWorker)
.to receive(:perform_async).once.with(deployment.id)
deployment.run!
end
it 'does not execute Deployments::DropOlderDeploymentsWorker when FF enabled' do
stub_feature_flags(prevent_outdated_deployment_jobs: true)
expect(Deployments::DropOlderDeploymentsWorker)
.not_to receive(:perform_async).with(deployment.id)
deployment.run!
end
end
context 'when deployment succeeded' do
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册