diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 7cdaa3e3ca70a20f96699c6be7565d0ac85a9d7d..c692b79c923e4300735a47f28ff39d1ad0225a6e 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -1079,7 +1079,7 @@ def mergeable_ci_state? return true unless project.only_allow_merge_if_pipeline_succeeds? return false unless actual_head_pipeline - actual_head_pipeline.success? || actual_head_pipeline.skipped? + actual_head_pipeline.success? end def environments_for(current_user) diff --git a/changelogs/unreleased/mc-bug-omips-not-blocking-on-skipped-pipelines.yml b/changelogs/unreleased/mc-bug-omips-not-blocking-on-skipped-pipelines.yml new file mode 100644 index 0000000000000000000000000000000000000000..560b4de81a02562d46be87ba235715491e4471c4 --- /dev/null +++ b/changelogs/unreleased/mc-bug-omips-not-blocking-on-skipped-pipelines.yml @@ -0,0 +1,5 @@ +--- +title: Block MR with OMIPS on skipped pipelines. +merge_request: 18838 +author: +type: fixed diff --git a/spec/features/merge_request/user_merges_only_if_pipeline_succeeds_spec.rb b/spec/features/merge_request/user_merges_only_if_pipeline_succeeds_spec.rb index 4afbf30ece4bfa254a87e7fb48c3a2279e5ca4ca..419f741d0ea8d24720a4dc115480527c0da2c979 100644 --- a/spec/features/merge_request/user_merges_only_if_pipeline_succeeds_spec.rb +++ b/spec/features/merge_request/user_merges_only_if_pipeline_succeeds_spec.rb @@ -89,12 +89,12 @@ context 'when CI skipped' do let(:status) { :skipped } - it 'allows MR to be merged' do + it 'does not allow MR to be merged' do visit project_merge_request_path(project, merge_request) wait_for_requests - expect(page).to have_button 'Merge' + expect(page).not_to have_button 'Merge' end end end diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index ad79bee880141530b4acf350c36f448af9700d34..2877b9951cec350a89892811581176ec997da604 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -2203,7 +2203,7 @@ def set_compare(merge_request) allow(subject).to receive(:head_pipeline) { pipeline } end - it { expect(subject.mergeable_ci_state?).to be_truthy } + it { expect(subject.mergeable_ci_state?).to be_falsey } end context 'when no pipeline is associated' do