diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index d2cef52842c7e09ed321bd44c3b27ef94048b058..f0cb5a9d4b4e4ca1ee4ffe5ef1c2eec9c540d6ac 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -302,9 +302,13 @@ def merge_check end def cancel_merge_when_build_succeeds - return access_denied! unless @merge_request.can_cancel_merge_when_build_succeeds?(current_user) + unless @merge_request.can_cancel_merge_when_build_succeeds?(current_user) + return access_denied! + end - MergeRequests::MergeWhenBuildSucceedsService.new(@project, current_user).cancel(@merge_request) + MergeRequests::MergeWhenPipelineSucceedsService + .new(@project, current_user) + .cancel(@merge_request) end def merge @@ -331,8 +335,10 @@ def merge end if @merge_request.head_pipeline.active? - MergeRequests::MergeWhenBuildSucceedsService.new(@project, current_user, merge_params) - .execute(@merge_request) + MergeRequests::MergeWhenPipelineSucceedsService + .new(@project, current_user, merge_params) + .execute(@merge_request) + @status = :merge_when_build_succeeds elsif @merge_request.head_pipeline.success? # This can be triggered when a user clicks the auto merge button while diff --git a/app/services/merge_requests/merge_when_build_succeeds_service.rb b/app/services/merge_requests/merge_when_pipeline_succeeds_service.rb similarity index 95% rename from app/services/merge_requests/merge_when_build_succeeds_service.rb rename to app/services/merge_requests/merge_when_pipeline_succeeds_service.rb index dc159de00581d2dd9608db3794b7cc99ea1f99fe..5616edf8b4a303db8b65cf37dc59ded8a1270e2a 100644 --- a/app/services/merge_requests/merge_when_build_succeeds_service.rb +++ b/app/services/merge_requests/merge_when_pipeline_succeeds_service.rb @@ -1,5 +1,5 @@ module MergeRequests - class MergeWhenBuildSucceedsService < MergeRequests::BaseService + class MergeWhenPipelineSucceedsService < MergeRequests::BaseService # Marks the passed `merge_request` to be merged when the build succeeds or # updates the params for the automatic merge def execute(merge_request) diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb index a33845848b406ba5a213a9a56a64bdcd636b2097..3cf6467804f5d266e5fef589cef13a410cbf945a 100644 --- a/app/services/system_note_service.rb +++ b/app/services/system_note_service.rb @@ -131,14 +131,14 @@ def change_status(noteable, project, author, status, source) create_note(noteable: noteable, project: project, author: author, note: body) end - # Called when 'merge when build succeeds' is executed + # Called when 'merge when pipeline succeeds' is executed def merge_when_build_succeeds(noteable, project, author, last_commit) - body = "enabled an automatic merge when the build for #{last_commit.to_reference(project)} succeeds" + body = "enabled an automatic merge when the pipeline for #{last_commit.to_reference(project)} succeeds" create_note(noteable: noteable, project: project, author: author, note: body) end - # Called when 'merge when build succeeds' is canceled + # Called when 'merge when pipeline succeeds' is canceled def cancel_merge_when_build_succeeds(noteable, project, author) body = 'canceled the automatic merge' diff --git a/app/views/projects/merge_requests/widget/open/_accept.html.haml b/app/views/projects/merge_requests/widget/open/_accept.html.haml index ce43ca3a2866dce658489c4560435eafed3da5a3..435fe835fae6e6358e627aa96561c04c04e6138c 100644 --- a/app/views/projects/merge_requests/widget/open/_accept.html.haml +++ b/app/views/projects/merge_requests/widget/open/_accept.html.haml @@ -9,7 +9,7 @@ - if @pipeline && @pipeline.active? %span.btn-group = button_tag class: "btn btn-create js-merge-button merge_when_build_succeeds" do - Merge When Build Succeeds + Merge When Pipeline Succeeds - unless @project.only_allow_merge_if_build_succeeds? = button_tag class: "btn btn-success dropdown-toggle", 'data-toggle' => 'dropdown' do = icon('caret-down') @@ -19,7 +19,7 @@ %li = link_to "#", class: "merge_when_build_succeeds" do = icon('check fw') - Merge When Build Succeeds + Merge When Pipeline Succeeds %li = link_to "#", class: "accept_merge_request" do = icon('warning fw') diff --git a/app/views/projects/merge_requests/widget/open/_merge_when_build_succeeds.html.haml b/app/views/projects/merge_requests/widget/open/_merge_when_build_succeeds.html.haml index 1aeb12e46610e2c935682ab4e8b81eeee3204e69..072d01d144e89eafb05142883d0e6d27f0ee5e45 100644 --- a/app/views/projects/merge_requests/widget/open/_merge_when_build_succeeds.html.haml +++ b/app/views/projects/merge_requests/widget/open/_merge_when_build_succeeds.html.haml @@ -1,6 +1,6 @@ %h4 Set by #{link_to_member(@project, @merge_request.merge_user, avatar: true)} - to be merged automatically when the build succeeds. + to be merged automatically when the pipeline succeeds. %div %p = succeed '.' do diff --git a/app/workers/pipeline_success_worker.rb b/app/workers/pipeline_success_worker.rb index 2aa6fff24da1878615bad011dfcc9e4a2f9942e1..cc0eb708cf9c1e79aba0bbd72c94de96bb5b23f3 100644 --- a/app/workers/pipeline_success_worker.rb +++ b/app/workers/pipeline_success_worker.rb @@ -4,7 +4,7 @@ class PipelineSuccessWorker def perform(pipeline_id) Ci::Pipeline.find_by(id: pipeline_id).try do |pipeline| - MergeRequests::MergeWhenBuildSucceedsService + MergeRequests::MergeWhenPipelineSucceedsService .new(pipeline.project, nil) .trigger(pipeline) end diff --git a/changelogs/unreleased/fix-rename-mwbs-to-merge-when-pipeline-succeeds.yml b/changelogs/unreleased/fix-rename-mwbs-to-merge-when-pipeline-succeeds.yml new file mode 100644 index 0000000000000000000000000000000000000000..f8acc6ef8ad04f8cd05f62fefc5a522e65f5c29c --- /dev/null +++ b/changelogs/unreleased/fix-rename-mwbs-to-merge-when-pipeline-succeeds.yml @@ -0,0 +1,4 @@ +--- +title: Rename Merge When Build Succeeds to Merge When Pipeline Succeeds +merge_request: 7135 +author: diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md index 12d24543bbe29e70e2703073bf53e7ee3eff0180..9460b3f73b1177ae87c55f497c174beaa6ac9721 100644 --- a/doc/api/merge_requests.md +++ b/doc/api/merge_requests.md @@ -510,7 +510,7 @@ Parameters: } ``` -## Cancel Merge When Build Succeeds +## Cancel Merge When Pipeline Succeeds If you don't have permissions to accept this merge request - you'll get a `401` diff --git a/doc/development/code_review.md b/doc/development/code_review.md index e1fb8102b67af08d68444c8222c303d782ed09ad..1ef34c79971b9629be492caeb1515a52fdedd029 100644 --- a/doc/development/code_review.md +++ b/doc/development/code_review.md @@ -70,8 +70,8 @@ experience, refactors the existing code). Then: - After a round of line notes, it can be helpful to post a summary note such as "LGTM :thumbsup:", or "Just a couple things to address." - Avoid accepting a merge request before the build succeeds. Of course, "Merge - When Build Succeeds" (MWBS) is fine. -- If you set the MR to "Merge When Build Succeeds", you should take over + When Pipeline Succeeds" (MWPS) is fine. +- If you set the MR to "Merge When Pipeline Succeeds", you should take over subsequent revisions for anything that would be spotted after that. ## The right balance diff --git a/doc/intro/README.md b/doc/intro/README.md index 1790b2b761f40adf11647b0b0672f2b621755fe6..1df6a52ce8a2fdf16c88278aeff83e005d584f5c 100644 --- a/doc/intro/README.md +++ b/doc/intro/README.md @@ -23,7 +23,7 @@ Create merge requests and review code. - [Fork a project and contribute to it](../workflow/forking_workflow.md) - [Create a new merge request](../gitlab-basics/add-merge-request.md) - [Automatically close issues from merge requests](../user/project/issues/automatic_issue_closing.md) -- [Automatically merge when your builds succeed](../user/project/merge_requests/merge_when_build_succeeds.md) +- [Automatically merge when pipeline succeeds](../user/project/merge_requests/merge_when_pipeline_succeeds.md) - [Revert any commit](../user/project/merge_requests/revert_changes.md) - [Cherry-pick any commit](../user/project/merge_requests/cherry_pick_changes.md) diff --git a/doc/user/project/merge_requests.md b/doc/user/project/merge_requests.md index 5af9a5d049c0518c81ba6007073a8335a1d2f9ba..be09337319fff5946001ecb5cf510ef79f81b71b 100644 --- a/doc/user/project/merge_requests.md +++ b/doc/user/project/merge_requests.md @@ -19,14 +19,14 @@ in a merged merge requests or a commit. [Learn more about cherry-picking changes.](merge_requests/cherry_pick_changes.md) -## Merge when build succeeds +## Merge when pipeline succeeds When reviewing a merge request that looks ready to merge but still has one or -more CI builds running, you can set it to be merged automatically when all -builds succeed. This way, you don't have to wait for the builds to finish and -remember to merge the request manually. +more CI builds running, you can set it to be merged automatically when CI +pipeline succeeds. This way, you don't have to wait for the pipeline to finish +and remember to merge the request manually. -[Learn more about merging when build succeeds.](merge_requests/merge_when_build_succeeds.md) +[Learn more about merging when pipeline succeeds.](merge_requests/merge_when_pipeline_succeeds.md) ## Resolve discussion comments in merge requests reviews diff --git a/doc/user/project/merge_requests/merge_when_build_succeeds.md b/doc/user/project/merge_requests/merge_when_build_succeeds.md index d4e5b5de6857d4bcc16631a41ee797d9a65092e1..2167fdfbf7e9313c043b15d2c0c83694c6b3960b 100644 --- a/doc/user/project/merge_requests/merge_when_build_succeeds.md +++ b/doc/user/project/merge_requests/merge_when_build_succeeds.md @@ -1,46 +1,5 @@ -# Merge When Build Succeeds +This document was moved to [merge_when_pipeline_succeeds](merge_when_pipeline_succeeds.md). -When reviewing a merge request that looks ready to merge but still has one or -more CI builds running, you can set it to be merged automatically when the -builds pipeline succeed. This way, you don't have to wait for the builds to -finish and remember to merge the request manually. +>[Introduced][ce-7135] by the "Rename MWBS service to Merge When Pipeline Succeeds" change. - - -When you hit the "Merge When Build Succeeds" button, the status of the merge -request will be updated to represent the impending merge. If you cannot wait -for the pipeline to succeed and want to merge immediately, this option is -available in the dropdown menu on the right of the main button. - -Both team developers and the author of the merge request have the option to -cancel the automatic merge if they find a reason why it shouldn't be merged -after all. - - - -When the pipeline succeeds, the merge request will automatically be merged. -When the pipeline fails, the author gets a chance to retry any failed builds, -or to push new commits to fix the failure. - -When the builds are retried and succeed on the second try, the merge request -will automatically be merged after all. When the merge request is updated with -new commits, the automatic merge is automatically canceled to allow the new -changes to be reviewed. - -## Only allow merge requests to be merged if the build succeeds - -> **Note:** -You need to have builds configured to enable this feature. - -You can prevent merge requests from being merged if their build did not succeed. - -Navigate to your project's settings page, select the -**Only allow merge requests to be merged if the build succeeds** check box and -hit **Save** for the changes to take effect. - - - -From now on, every time the pipeline fails you will not be able to merge the -merge request from the UI, until you make all relevant builds pass. - - +[ce-7135]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7135 diff --git a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md new file mode 100644 index 0000000000000000000000000000000000000000..75ad18b28cf971ba2aa3cb9628e6c97bdcb3e788 --- /dev/null +++ b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md @@ -0,0 +1,46 @@ +# Merge When Pipeline Succeeds + +When reviewing a merge request that looks ready to merge but still has one or +more CI builds running, you can set it to be merged automatically when the +builds pipeline succeeds. This way, you don't have to wait for the builds to +finish and remember to merge the request manually. + + + +When you hit the "Merge When Pipeline Succeeds" button, the status of the merge +request will be updated to represent the impending merge. If you cannot wait +for the pipeline to succeed and want to merge immediately, this option is +available in the dropdown menu on the right of the main button. + +Both team developers and the author of the merge request have the option to +cancel the automatic merge if they find a reason why it shouldn't be merged +after all. + + + +When the pipeline succeeds, the merge request will automatically be merged. +When the pipeline fails, the author gets a chance to retry any failed builds, +or to push new commits to fix the failure. + +When the builds are retried and succeed on the second try, the merge request +will automatically be merged after all. When the merge request is updated with +new commits, the automatic merge is automatically canceled to allow the new +changes to be reviewed. + +## Only allow merge requests to be merged if the pipeline succeeds + +> **Note:** +You need to have builds configured to enable this feature. + +You can prevent merge requests from being merged if their pipeline did not succeed. + +Navigate to your project's settings page, select the +**Only allow merge requests to be merged if the pipeline succeeds** check box and +hit **Save** for the changes to take effect. + + + +From now on, every time the pipeline fails you will not be able to merge the +merge request from the UI, until you make all relevant builds pass. + + diff --git a/doc/workflow/README.md b/doc/workflow/README.md index 2d9bfbc062902a88ee64e5d7e655d4cd0ab5be77..59a806de210f14d3985d23fc13522c4eb037b48e 100644 --- a/doc/workflow/README.md +++ b/doc/workflow/README.md @@ -25,12 +25,12 @@ - [Merge Requests](../user/project/merge_requests.md) - [Authorization for merge requests](../user/project/merge_requests/authorization_for_merge_requests.md) - [Cherry-pick changes](../user/project/merge_requests/cherry_pick_changes.md) - - [Merge when build succeeds](../user/project/merge_requests/merge_when_build_succeeds.md) + - [Merge when pipeline succeeds](../user/project/merge_requests/merge_when_pipeline_succeeds.md) - [Resolve discussion comments in merge requests reviews](../user/project/merge_requests/merge_request_discussion_resolution.md) - [Resolve merge conflicts in the UI](../user/project/merge_requests/resolve_conflicts.md) - [Revert changes in the UI](../user/project/merge_requests/revert_changes.md) - [Merge requests versions](../user/project/merge_requests/versions.md) - ["Work In Progress" merge requests](../user/project/merge_requests/work_in_progress_merge_requests.md) - [Manage large binaries with Git LFS](lfs/manage_large_binaries_with_git_lfs.md) -- [Importing from SVN, GitHub, BitBucket, etc](importing/README.md) +- [Importing from SVN, GitHub, Bitbucket, etc](importing/README.md) - [Todos](todos.md) diff --git a/doc/workflow/merge_when_build_succeeds.md b/doc/workflow/merge_when_build_succeeds.md index 95afd12ebdb95336cb836eeec6755338c0b19efd..b4f6d6117de4a20d6be0d3a3800c5cf06229ba1c 100644 --- a/doc/workflow/merge_when_build_succeeds.md +++ b/doc/workflow/merge_when_build_succeeds.md @@ -1 +1 @@ -This document was moved to [user/project/merge_requests/merge_when_build_succeeds](../user/project/merge_requests/merge_when_build_succeeds.md). +This document was moved to [merge_when_pipeline_succeeds](../user/project/merge_requests/merge_when_pipeline_succeeds.md). diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index 97baebc1d27ba2ed1f60c3b2af9f86883746d1d6..ad9b3d8039f361bbfcd98c14f83031a34cf8fc19 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -169,7 +169,7 @@ def handle_merge_request_errors!(errors) optional :should_remove_source_branch, type: Boolean, desc: 'When true, the source branch will be deleted if possible' optional :merge_when_build_succeeds, type: Boolean, - desc: 'When true, this merge request will be merged when the build succeeds' + desc: 'When true, this merge request will be merged when the pipeline succeeds' optional :sha, type: String, desc: 'When present, must have the HEAD SHA of the source branch' end put "#{path}/merge" do @@ -193,17 +193,19 @@ def handle_merge_request_errors!(errors) } if params[:merge_when_build_succeeds] && merge_request.head_pipeline && merge_request.head_pipeline.active? - ::MergeRequests::MergeWhenBuildSucceedsService.new(merge_request.target_project, current_user, merge_params). - execute(merge_request) + ::MergeRequests::MergeWhenPipelineSucceedsService + .new(merge_request.target_project, current_user, merge_params) + .execute(merge_request) else - ::MergeRequests::MergeService.new(merge_request.target_project, current_user, merge_params). - execute(merge_request) + ::MergeRequests::MergeService + .new(merge_request.target_project, current_user, merge_params) + .execute(merge_request) end present merge_request, with: Entities::MergeRequest, current_user: current_user, project: user_project end - desc 'Cancel merge if "Merge when build succeeds" is enabled' do + desc 'Cancel merge if "Merge When Pipeline Succeeds" is enabled' do success Entities::MergeRequest end post "#{path}/cancel_merge_when_build_succeeds" do @@ -211,7 +213,9 @@ def handle_merge_request_errors!(errors) unauthorized! unless merge_request.can_cancel_merge_when_build_succeeds?(current_user) - ::MergeRequest::MergeWhenBuildSucceedsService.new(merge_request.target_project, current_user).cancel(merge_request) + ::MergeRequest::MergeWhenPipelineSucceedsService + .new(merge_request.target_project, current_user) + .cancel(merge_request) end desc 'Get the comments of a merge request' do diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb index 1d0750d17192767c86fe3bfe86b939cf7643fa1d..9e0b80205d8f80c4e8d0d2ab6abb6853ee8cc529 100644 --- a/spec/controllers/projects/merge_requests_controller_spec.rb +++ b/spec/controllers/projects/merge_requests_controller_spec.rb @@ -292,7 +292,9 @@ def merge_when_build_succeeds it 'sets the MR to merge when the build succeeds' do service = double(:merge_when_build_succeeds_service) - expect(MergeRequests::MergeWhenBuildSucceedsService).to receive(:new).with(project, anything, anything).and_return(service) + expect(MergeRequests::MergeWhenPipelineSucceedsService) + .to receive(:new).with(project, anything, anything) + .and_return(service) expect(service).to receive(:execute).with(merge_request) merge_when_build_succeeds diff --git a/spec/features/merge_requests/merge_when_build_succeeds_spec.rb b/spec/features/merge_requests/merge_when_pipeline_succeeds_spec.rb similarity index 75% rename from spec/features/merge_requests/merge_when_build_succeeds_spec.rb rename to spec/features/merge_requests/merge_when_pipeline_succeeds_spec.rb index 9ad225e3a1b0f06edf6fc3932cd1c45a657fd74a..aa24a9050016ca096232142f9d708346b5101ed4 100644 --- a/spec/features/merge_requests/merge_when_build_succeeds_spec.rb +++ b/spec/features/merge_requests/merge_when_pipeline_succeeds_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -feature 'Merge When Build Succeeds', feature: true, js: true do +feature 'Merge When Pipeline Succeeds', :feature, :js do let(:user) { create(:user) } let(:project) { create(:project, :public) } @@ -18,7 +18,7 @@ before { project.team << [user, :master] } - context 'when there is active build for merge request' do + context 'when there is active pipeline for merge request' do background do create(:ci_build, pipeline: pipeline) end @@ -28,28 +28,28 @@ visit_merge_request(merge_request) end - it 'displays the Merge When Build Succeeds button' do - expect(page).to have_button "Merge When Build Succeeds" + it 'displays the Merge When Pipeline Succeeds button' do + expect(page).to have_button "Merge When Pipeline Succeeds" end - context "Merge When Build succeeds enabled" do + context "Merge When Pipeline Succeeds enabled" do before do - click_button "Merge When Build Succeeds" + click_button "Merge When Pipeline Succeeds" end - it 'activates Merge When Build Succeeds feature' do + it 'activates Merge When Pipeline Succeeds feature' do expect(page).to have_link "Cancel Automatic Merge" - expect(page).to have_content "Set by #{user.name} to be merged automatically when the build succeeds." + expect(page).to have_content "Set by #{user.name} to be merged automatically when the pipeline succeeds." expect(page).to have_content "The source branch will not be removed." visit_merge_request(merge_request) # Needed to refresh the page - expect(page).to have_content /enabled an automatic merge when the build for \h{8} succeeds/i + expect(page).to have_content /enabled an automatic merge when the pipeline for \h{8} succeeds/i end end end - context 'when merge when build succeeds is enabled' do + context 'when merge when pipeline succeeds is enabled' do let(:merge_request) do create(:merge_request_with_diffs, :simple, source_project: project, author: user, @@ -70,7 +70,7 @@ it 'allows to cancel the automatic merge' do click_link "Cancel Automatic Merge" - expect(page).to have_button "Merge When Build Succeeds" + expect(page).to have_button "Merge When Pipeline Succeeds" visit_merge_request(merge_request) # refresh the page expect(page).to have_content "canceled the automatic merge" @@ -83,7 +83,7 @@ expect(page).to have_content "The source branch will be removed" end - context 'when build succeeds' do + context 'when pipeline succeeds' do background { build.success } it 'merges merge request' do @@ -95,10 +95,11 @@ end end - context 'when build is not active' do - it "does not allow to enable merge when build succeeds" do + context 'when pipeline is not active' do + it "does not allow to enable merge when pipeline succeeds" do visit_merge_request(merge_request) - expect(page).not_to have_link "Merge When Build Succeeds" + + expect(page).not_to have_link 'Merge When Pipeline Succeeds' end end diff --git a/spec/features/merge_requests/only_allow_merge_if_build_succeeds_spec.rb b/spec/features/merge_requests/only_allow_merge_if_build_succeeds_spec.rb index 1ec3103feef215294be9a668099ff7b35bce505c..7e2907cd26fa1ff4ed8c2671e1ef2509d22e9237 100644 --- a/spec/features/merge_requests/only_allow_merge_if_build_succeeds_spec.rb +++ b/spec/features/merge_requests/only_allow_merge_if_build_succeeds_spec.rb @@ -38,7 +38,7 @@ it 'does not allow to merge immediately' do visit_merge_request(merge_request) - expect(page).to have_button 'Merge When Build Succeeds' + expect(page).to have_button 'Merge When Pipeline Succeeds' expect(page).not_to have_button 'Select Merge Moment' end end @@ -97,7 +97,7 @@ it 'allows MR to be merged immediately', js: true do visit_merge_request(merge_request) - expect(page).to have_button 'Merge When Build Succeeds' + expect(page).to have_button 'Merge When Pipeline Succeeds' click_button 'Select Merge Moment' expect(page).to have_content 'Merge Immediately' diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index ec22ef934652f46d6b39bad0512a0f9a0a0120aa..2cc818af6c75aaaa690ca3e5da8c3d2cd2041218 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -31,7 +31,7 @@ it { is_expected.to validate_presence_of(:target_branch) } it { is_expected.to validate_presence_of(:source_branch) } - context "Validation of merge user with Merge When Build succeeds" do + context "Validation of merge user with Merge When Pipeline Succeeds" do it "allows user to be nil when the feature is disabled" do expect(subject).to be_valid end diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb index 918a71129f76c2937d84dd0793bf0fbd94230d04..0b89ac7960e9596f5f7e0892515104c1672e1481 100644 --- a/spec/requests/api/merge_requests_spec.rb +++ b/spec/requests/api/merge_requests_spec.rb @@ -465,7 +465,7 @@ expect(response).to have_http_status(200) end - it "enables merge when build succeeds if the ci is active" do + it "enables merge when pipeline succeeds if the pipeline is active" do allow_any_instance_of(MergeRequest).to receive(:head_pipeline).and_return(pipeline) allow(pipeline).to receive(:active?).and_return(true) diff --git a/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb b/spec/services/merge_requests/merge_when_pipeline_succeeds_service_spec.rb similarity index 92% rename from spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb rename to spec/services/merge_requests/merge_when_pipeline_succeeds_service_spec.rb index 963d9573ac410f72fa13e882765cbad9703863f1..f92978a33a3dabce6990b9d818e991fa018e078e 100644 --- a/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb +++ b/spec/services/merge_requests/merge_when_pipeline_succeeds_service_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe MergeRequests::MergeWhenBuildSucceedsService do +describe MergeRequests::MergeWhenPipelineSucceedsService do let(:user) { create(:user) } let(:project) { create(:project) } @@ -10,8 +10,14 @@ source_project: project, target_project: project, state: "opened") end - let(:pipeline) { create(:ci_pipeline_with_one_job, ref: mr_merge_if_green_enabled.source_branch, project: project) } - let(:service) { MergeRequests::MergeWhenBuildSucceedsService.new(project, user, commit_message: 'Awesome message') } + let(:pipeline) do + create(:ci_pipeline_with_one_job, ref: mr_merge_if_green_enabled.source_branch, + project: project) + end + + let(:service) do + described_class.new(project, user, commit_message: 'Awesome message') + end describe "#execute" do let(:merge_request) do @@ -37,12 +43,12 @@ it 'creates a system note' do note = merge_request.notes.last - expect(note.note).to match /enabled an automatic merge when the build for (\w+\/\w+@)?\h{8}/ + expect(note.note).to match /enabled an automatic merge when the pipeline for (\w+\/\w+@)?\h{8}/ end end context 'already approved' do - let(:service) { MergeRequests::MergeWhenBuildSucceedsService.new(project, user, new_key: true) } + let(:service) { described_class.new(project, user, new_key: true) } let(:build) { create(:ci_build, ref: mr_merge_if_green_enabled.source_branch) } before do diff --git a/spec/services/system_note_service_spec.rb b/spec/services/system_note_service_spec.rb index 4a8f6c321aa4ebc606996fb29f2313137d9bdfd9..435cfb0729216f45e9e2199e9f868b63c5b1e0dd 100644 --- a/spec/services/system_note_service_spec.rb +++ b/spec/services/system_note_service_spec.rb @@ -225,8 +225,8 @@ it_behaves_like 'a system note' - it "posts the Merge When Build Succeeds system note" do - expect(subject.note).to match /enabled an automatic merge when the build for (\w+\/\w+@)?\h{40} succeeds/ + it "posts the 'merge when pipeline succeeds' system note" do + expect(subject.note).to match /enabled an automatic merge when the pipeline for (\w+\/\w+@)?\h{40} succeeds/ end end @@ -239,7 +239,7 @@ it_behaves_like 'a system note' - it "posts the Merge When Build Succeeds system note" do + it "posts the 'merge when pipeline succeeds' system note" do expect(subject.note).to eq "canceled the automatic merge" end end diff --git a/spec/workers/pipeline_success_worker_spec.rb b/spec/workers/pipeline_success_worker_spec.rb index 5e31cc2c8e7754ccc2b61fb032ef0c62f6c756cc..d1c84adda6f9fb91aa5b08f9919e5e0e58a9f98c 100644 --- a/spec/workers/pipeline_success_worker_spec.rb +++ b/spec/workers/pipeline_success_worker_spec.rb @@ -7,7 +7,7 @@ it 'performs "merge when pipeline succeeds"' do expect_any_instance_of( - MergeRequests::MergeWhenBuildSucceedsService + MergeRequests::MergeWhenPipelineSucceedsService ).to receive(:trigger) described_class.new.perform(pipeline.id)