Commit d828ed88 authored by Lin Jen-Shin's avatar Lin Jen-Shin

Merge branch 'remove-merge-request-pipeline-checkes' into 'master'

Remove merge request pipeline check in mergeable method

See merge request gitlab-org/gitlab-ee!12309
parents 1c49e1c2 b3a5a6bd
......@@ -117,14 +117,6 @@ export default {
this.mr.mergePipelinesEnabled && this.mr.sourceProjectId !== this.mr.targetProjectId,
);
},
showTargetBranchAdvancedError() {
return Boolean(
this.mr.isOpen &&
this.mr.pipeline &&
this.mr.pipeline.target_sha &&
this.mr.pipeline.target_sha !== this.mr.targetBranchSha,
);
},
mergeError() {
return sprintf(s__('mrWidget|Merge failed: %{mergeError}. Please try again.'), {
mergeError: this.mr.mergeError,
......@@ -363,18 +355,6 @@ export default {
}}
</mr-widget-alert-message>
<mr-widget-alert-message
v-if="showTargetBranchAdvancedError"
type="danger"
:help-path="mr.mergeRequestPipelinesHelpPath"
>
{{
s__(
'mrWidget|The target branch has advanced, which invalidates the merge request pipeline. Please update the source branch and retry merging',
)
}}
</mr-widget-alert-message>
<mr-widget-alert-message v-if="mr.mergeError" type="danger">
{{ mergeError }}
</mr-widget-alert-message>
......
......@@ -322,18 +322,6 @@ export default {
}}
</mr-widget-alert-message>
<mr-widget-alert-message
v-if="showTargetBranchAdvancedError"
type="danger"
:help-path="mr.mergeRequestPipelinesHelpPath"
>
{{
s__(
'mrWidget|The target branch has advanced, which invalidates the merge request pipeline. Please update the source branch and retry merging',
)
}}
</mr-widget-alert-message>
<mr-widget-alert-message v-if="mr.mergeError" type="danger">
{{ mergeError }}
</mr-widget-alert-message>
......
......@@ -71,13 +71,6 @@ module EE
end
end
override :mergeable_ci_state?
def mergeable_ci_state?
return false unless validate_merge_request_pipelines
super
end
def get_on_train!(user)
create_merge_train!(user: user, target_project: target_project, target_branch: target_branch)
end
......@@ -99,12 +92,6 @@ module EE
false
end
def validate_merge_request_pipelines
return true unless project.merge_pipelines_enabled?
actual_head_pipeline&.latest_merge_request_pipeline?
end
def validate_approval_rule_source
return unless approval_rules.any?
......
---
title: Allow merge requests to be merged even when it does not have up-to-date pipeline when merge request pipeline is enabled
merge_request: 12309
author:
type: changed
......@@ -45,21 +45,6 @@ describe 'Merge request > User sees merge widget', :js do
expect(page).not_to have_css('.danger_message')
end
context 'when target branch is advanced' do
let(:options) { { target_sha: 'old-commit' } }
it 'shows a warning that fork project cannot create merge request pipelines' do
visit project_merge_request_path(project, merge_request)
within('.danger_message') do
expect(page)
.to have_content('The target branch has advanced, which invalidates ' \
'the merge request pipeline. Please update the source ' \
'branch and retry merging')
end
end
end
end
context 'when merge request is submitted from a forked project' do
......
......@@ -622,64 +622,6 @@ describe MergeRequest do
end
end
describe '#mergeable_ci_state?' do
subject { merge_request.mergeable_ci_state? }
let(:project) { create(:project, :repository) }
let(:merge_request) do
create(:merge_request,
:with_merge_request_pipeline,
source_branch: 'feature',
source_project: project,
target_branch: 'master',
target_project: project)
end
shared_examples_for 'merge pipelines project option is disabled' do
before do
project.merge_pipelines_enabled = false
end
it { is_expected.to be_truthy }
end
before do
stub_licensed_features(merge_pipelines: true)
project.merge_pipelines_enabled = true
merge_request.update_head_pipeline
end
it { is_expected.to be_truthy }
context 'when head pipeline is a detached merge request pipeline' do
before do
merge_request.head_pipeline.update_column(:target_sha, nil)
end
it { is_expected.to be_falsy }
it_behaves_like 'merge pipelines project option is disabled'
end
context 'when source sha of the merge request pipeline is not HEAD' do
before do
merge_request.head_pipeline.update_column(:source_sha, 'old-commit')
end
it { is_expected.to be_falsy }
it_behaves_like 'merge pipelines project option is disabled'
end
context 'when target sha of the merge request pipeline is not HEAD' do
before do
merge_request.head_pipeline.update_column(:target_sha, 'old-commit')
end
it { is_expected.to be_falsy }
it_behaves_like 'merge pipelines project option is disabled'
end
end
describe '#get_on_train!' do
subject { merge_request.get_on_train!(user) }
......
......@@ -16458,9 +16458,6 @@ msgstr ""
msgid "mrWidget|The source branch will not be deleted"
msgstr ""
msgid "mrWidget|The target branch has advanced, which invalidates the merge request pipeline. Please update the source branch and retry merging"
msgstr ""
msgid "mrWidget|There are merge conflicts"
msgstr ""
......
......@@ -222,60 +222,6 @@ describe('mrWidgetOptions', () => {
});
});
});
describe('showTargetBranchAdvancedError', () => {
describe(`when the pipeline's target_sha property doesn't exist`, () => {
beforeEach(done => {
Vue.set(vm.mr, 'isOpen', true);
Vue.set(vm.mr.pipeline, 'target_sha', undefined);
Vue.set(vm.mr, 'targetBranchSha', 'abcd');
vm.$nextTick(done);
});
it('should be false', () => {
expect(vm.showTargetBranchAdvancedError).toEqual(false);
});
});
describe(`when the pipeline's target_sha matches the target branch's sha`, () => {
beforeEach(done => {
Vue.set(vm.mr, 'isOpen', true);
Vue.set(vm.mr.pipeline, 'target_sha', 'abcd');
Vue.set(vm.mr, 'targetBranchSha', 'abcd');
vm.$nextTick(done);
});
it('should be false', () => {
expect(vm.showTargetBranchAdvancedError).toEqual(false);
});
});
describe(`when the merge request is not open`, () => {
beforeEach(done => {
Vue.set(vm.mr, 'isOpen', false);
Vue.set(vm.mr.pipeline, 'target_sha', 'abcd');
Vue.set(vm.mr, 'targetBranchSha', 'bcde');
vm.$nextTick(done);
});
it('should be false', () => {
expect(vm.showTargetBranchAdvancedError).toEqual(false);
});
});
describe(`when the pipeline's target_sha does not match the target branch's sha`, () => {
beforeEach(done => {
Vue.set(vm.mr, 'isOpen', true);
Vue.set(vm.mr.pipeline, 'target_sha', 'abcd');
Vue.set(vm.mr, 'targetBranchSha', 'bcde');
vm.$nextTick(done);
});
it('should be true', () => {
expect(vm.showTargetBranchAdvancedError).toEqual(true);
});
});
});
});
describe('methods', () => {
......
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