Update merge request pipeline even if if has errors

This commit is contained in:
Grzegorz Bizon 2017-08-18 14:12:40 +02:00
parent accaf7eaf2
commit 22f1b04637
2 changed files with 27 additions and 4 deletions

View File

@ -176,9 +176,14 @@ module Ci
end
def error(message, save: false)
pipeline.errors.add(:base, message)
pipeline.drop if save
pipeline
pipeline.tap do
pipeline.errors.add(:base, message)
if save
pipeline.drop
update_merge_requests_head_pipeline
end
end
end
def pipeline_created_counter

View File

@ -110,11 +110,29 @@ describe Ci::CreatePipelineService do
allow_any_instance_of(Ci::Pipeline)
.to receive(:latest?).and_return(false)
pipeline
execute_service
expect(merge_request.reload.head_pipeline).to be_nil
end
end
context 'when pipeline has errors' do
before do
stub_ci_pipeline_yaml_file('some invalid syntax')
end
it 'updates merge request head pipeline reference' do
merge_request = create(:merge_request, source_branch: 'master',
target_branch: 'feature',
source_project: project)
head_pipeline = execute_service
expect(head_pipeline).to be_persisted
expect(head_pipeline.yaml_errors).to be_present
expect(merge_request.reload.head_pipeline).to eq head_pipeline
end
end
end
context 'auto-cancel enabled' do