Merge branch '43482-enabling-auto-devops-on-an-empty-project-gives-you-wrong-information' into 'master'
Resolve "Enabling Auto DevOps on an empty project gives you wrong information" Closes #43482 See merge request gitlab-org/gitlab-ce!17605
This commit is contained in:
commit
f87ad66cee
|
@ -10,10 +10,7 @@ class Projects::PipelinesSettingsController < Projects::ApplicationController
|
||||||
if service.execute
|
if service.execute
|
||||||
flash[:notice] = "Pipelines settings for '#{@project.name}' were successfully updated."
|
flash[:notice] = "Pipelines settings for '#{@project.name}' were successfully updated."
|
||||||
|
|
||||||
if service.run_auto_devops_pipeline?
|
run_autodevops_pipeline(service)
|
||||||
CreatePipelineWorker.perform_async(project.id, current_user.id, project.default_branch, :web, ignore_skip_ci: true, save_on_errors: false)
|
|
||||||
flash[:success] = "A new Auto DevOps pipeline has been created, go to <a href=\"#{project_pipelines_path(@project)}\">Pipelines page</a> for details".html_safe
|
|
||||||
end
|
|
||||||
|
|
||||||
redirect_to project_settings_ci_cd_path(@project)
|
redirect_to project_settings_ci_cd_path(@project)
|
||||||
else
|
else
|
||||||
|
@ -24,6 +21,18 @@ class Projects::PipelinesSettingsController < Projects::ApplicationController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def run_autodevops_pipeline(service)
|
||||||
|
return unless service.run_auto_devops_pipeline?
|
||||||
|
|
||||||
|
if @project.empty_repo?
|
||||||
|
flash[:warning] = "This repository is currently empty. A new Auto DevOps pipeline will be created after a new file has been pushed to a branch."
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
CreatePipelineWorker.perform_async(project.id, current_user.id, project.default_branch, :web, ignore_skip_ci: true, save_on_errors: false)
|
||||||
|
flash[:success] = "A new Auto DevOps pipeline has been created, go to <a href=\"#{project_pipelines_path(@project)}\">Pipelines page</a> for details".html_safe
|
||||||
|
end
|
||||||
|
|
||||||
def update_params
|
def update_params
|
||||||
params.require(:project).permit(
|
params.require(:project).permit(
|
||||||
:runners_token, :builds_enabled, :build_allow_git_fetch,
|
:runners_token, :builds_enabled, :build_allow_git_fetch,
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Add empty repo check before running AutoDevOps pipeline
|
||||||
|
merge_request: 17605
|
||||||
|
author:
|
||||||
|
type: changed
|
|
@ -47,10 +47,32 @@ describe Projects::PipelinesSettingsController do
|
||||||
expect_any_instance_of(Projects::UpdateService).to receive(:run_auto_devops_pipeline?).and_return(true)
|
expect_any_instance_of(Projects::UpdateService).to receive(:run_auto_devops_pipeline?).and_return(true)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'queues a CreatePipelineWorker' do
|
context 'when the project repository is empty' do
|
||||||
expect(CreatePipelineWorker).to receive(:perform_async).with(project.id, user.id, project.default_branch, :web, any_args)
|
it 'sets a warning flash' do
|
||||||
|
expect(subject).to set_flash[:warning]
|
||||||
|
end
|
||||||
|
|
||||||
subject
|
it 'does not queue a CreatePipelineWorker' do
|
||||||
|
expect(CreatePipelineWorker).not_to receive(:perform_async).with(project.id, user.id, project.default_branch, :web, any_args)
|
||||||
|
|
||||||
|
subject
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the project repository is not empty' do
|
||||||
|
let(:project) { create(:project, :repository) }
|
||||||
|
|
||||||
|
it 'sets a success flash' do
|
||||||
|
allow(CreatePipelineWorker).to receive(:perform_async).with(project.id, user.id, project.default_branch, :web, any_args)
|
||||||
|
|
||||||
|
expect(subject).to set_flash[:success]
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'queues a CreatePipelineWorker' do
|
||||||
|
expect(CreatePipelineWorker).to receive(:perform_async).with(project.id, user.id, project.default_branch, :web, any_args)
|
||||||
|
|
||||||
|
subject
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue