Commit 3ce491c5 authored by Grzegorz Bizon's avatar Grzegorz Bizon

Merge branch 'fix-udpate-head-pipeline-method' into 'master'

Fix unexpected exception by failure of finding an actual head pipeline

Closes #56113

See merge request gitlab-org/gitlab-ce!24257
parents 0f71b4bc 1c248cd4
......@@ -1108,10 +1108,11 @@ class MergeRequest < ActiveRecord::Base
end
def update_head_pipeline
self.head_pipeline = find_actual_head_pipeline
find_actual_head_pipeline.try do |pipeline|
self.head_pipeline = pipeline
update_column(:head_pipeline_id, head_pipeline.id) if head_pipeline_id_changed?
end
end
def merge_request_pipeline_exists?
merge_request_pipelines.exists?(sha: diff_head_sha)
......
---
title: Fix unexpected exception by failure of finding an actual head pipeline
merge_request: 24257
author:
type: fixed
......@@ -1418,6 +1418,23 @@ describe MergeRequest do
.to change { merge_request.reload.head_pipeline }
.from(nil).to(pipeline)
end
context 'when merge request has already had head pipeline' do
before do
merge_request.update!(head_pipeline: pipeline)
end
context 'when failed to find an actual head pipeline' do
before do
allow(merge_request).to receive(:find_actual_head_pipeline) { }
end
it 'does not update the current head pipeline' do
expect { subject }
.not_to change { merge_request.reload.head_pipeline }
end
end
end
end
context 'when there are no pipelines with the diff head sha' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment