diff options
-rw-r--r-- | app/assets/stylesheets/framework/common.scss | 1 | ||||
-rw-r--r-- | app/assets/stylesheets/framework/header.scss | 1 | ||||
-rw-r--r-- | app/assets/stylesheets/framework/issue_box.scss | 9 | ||||
-rw-r--r-- | app/helpers/commits_helper.rb | 4 | ||||
-rw-r--r-- | app/services/merge_requests/merge_when_build_succeeds_service.rb | 12 | ||||
-rw-r--r-- | doc/install/requirements.md | 4 | ||||
-rw-r--r-- | spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb | 16 |
7 files changed, 33 insertions, 14 deletions
diff --git a/app/assets/stylesheets/framework/common.scss b/app/assets/stylesheets/framework/common.scss index ea56d9e12a0..0ddbf612543 100644 --- a/app/assets/stylesheets/framework/common.scss +++ b/app/assets/stylesheets/framework/common.scss @@ -377,7 +377,6 @@ table { } .project-item-select-holder { - display: inline-block; position: relative; .project-item-select { diff --git a/app/assets/stylesheets/framework/header.scss b/app/assets/stylesheets/framework/header.scss index a81e258573d..531dedb89fe 100644 --- a/app/assets/stylesheets/framework/header.scss +++ b/app/assets/stylesheets/framework/header.scss @@ -77,6 +77,7 @@ header { line-height: $header-height; font-weight: normal; color: #4c4e54; + overflow: hidden; text-overflow: ellipsis; vertical-align: top; white-space: nowrap; diff --git a/app/assets/stylesheets/framework/issue_box.scss b/app/assets/stylesheets/framework/issue_box.scss index 08dcb563dce..5d7fd36be16 100644 --- a/app/assets/stylesheets/framework/issue_box.scss +++ b/app/assets/stylesheets/framework/issue_box.scss @@ -6,31 +6,28 @@ .status-box { @include border-radius(3px); - display: block; float: left; padding: 0 $gl-btn-padding; - font-weight: normal; + margin-top: 5px; margin-right: 10px; + color: #FFF; font-size: $gl-font-size; + line-height: 25px; &.status-box-closed { background-color: $gl-danger; - color: #FFF; } &.status-box-merged { background-color: $gl-primary; - color: #FFF; } &.status-box-open { background-color: $green-light; - color: #FFF; } &.status-box-expired { background: #cea61b; - color: #FFF; } } diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb index 7ff539118d3..a09e91578b6 100644 --- a/app/helpers/commits_helper.rb +++ b/app/helpers/commits_helper.rb @@ -130,7 +130,7 @@ module CommitsHelper if can_collaborate_with_project? content_tag :span, 'data-toggle' => 'modal', 'data-target' => '#modal-revert-commit' do - link_to 'Revert', '#modal-revert-commit', 'data-toggle' => 'tooltip', title: tooltip, class: "btn btn-default btn-grouped btn-#{btn_class}" + link_to 'Revert', '#modal-revert-commit', 'data-toggle' => 'tooltip', 'data-container' => 'body', title: tooltip, class: "btn btn-default btn-grouped btn-#{btn_class}" end elsif can?(current_user, :fork_project, @project) continue_params = { @@ -142,7 +142,7 @@ module CommitsHelper namespace_key: current_user.namespace.id, continue: continue_params) - link_to 'Revert', fork_path, class: 'btn btn-grouped btn-close', method: :post, 'data-toggle' => 'tooltip', title: tooltip + link_to 'Revert', fork_path, class: 'btn btn-grouped btn-close', method: :post, 'data-toggle' => 'tooltip', 'data-container' => 'body', title: tooltip end end diff --git a/app/services/merge_requests/merge_when_build_succeeds_service.rb b/app/services/merge_requests/merge_when_build_succeeds_service.rb index 531bbc9b067..d6af12f9739 100644 --- a/app/services/merge_requests/merge_when_build_succeeds_service.rb +++ b/app/services/merge_requests/merge_when_build_succeeds_service.rb @@ -24,10 +24,14 @@ module MergeRequests merge_requests.each do |merge_request| next unless merge_request.merge_when_build_succeeds? + next unless merge_request.mergeable? - if merge_request.ci_commit && merge_request.ci_commit.success? && merge_request.mergeable? - MergeWorker.perform_async(merge_request.id, merge_request.merge_user_id, merge_request.merge_params) - end + ci_commit = merge_request.ci_commit + next unless ci_commit + next unless ci_commit.sha == commit_status.sha + next unless ci_commit.success? + + MergeWorker.perform_async(merge_request.id, merge_request.merge_user_id, merge_request.merge_params) end end @@ -51,6 +55,8 @@ module MergeRequests # This is for ref-less builds branches ||= @project.repository.branch_names_contains(commit_status.sha) + return [] if branches.blank? + merge_requests = @project.origin_merge_requests.opened.where(source_branch: branches).to_a merge_requests += @project.fork_merge_requests.opened.where(source_branch: branches).to_a diff --git a/doc/install/requirements.md b/doc/install/requirements.md index 3cab677fdc7..8df142c531b 100644 --- a/doc/install/requirements.md +++ b/doc/install/requirements.md @@ -67,8 +67,8 @@ You need at least 2GB of addressable memory (RAM + swap) to install and use GitL With less memory GitLab will give strange errors during the reconfigure run and 500 errors during usage. - 512MB RAM + 1.5GB of swap is the absolute minimum but we strongly **advise against** this amount of memory. See the unicorn worker section below for more advice. -- 1GB RAM + 1GB swap supports up to 100 users but it will be slow -- **2GB RAM** is the **recommended** memory size and supports up to 100 users +- 1GB RAM + 1GB swap supports up to 100 users but it will be very slow +- **2GB RAM** is the **recommended** memory size for all installations and supports up to 100 users - 4GB RAM supports up to 1,000 users - 8GB RAM supports up to 2,000 users - 16GB RAM supports up to 4,000 users diff --git a/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb b/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb index f285517cdac..52a302e0e1a 100644 --- a/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb +++ b/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb @@ -66,9 +66,25 @@ describe MergeRequests::MergeWhenBuildSucceedsService do end end + context 'triggered by an old build' do + let(:old_build) { create(:ci_build, ref: mr_merge_if_green_enabled.source_branch, status: "success") } + let(:build) { create(:ci_build, ref: mr_merge_if_green_enabled.source_branch, status: "success") } + + it "merges all merge requests with merge when build succeeds enabled" do + allow_any_instance_of(MergeRequest).to receive(:ci_commit).and_return(ci_commit) + allow(ci_commit).to receive(:success?).and_return(true) + allow(old_build).to receive(:sha).and_return('1234abcdef') + + expect(MergeWorker).to_not receive(:perform_async) + service.trigger(old_build) + end + end + context 'commit status without ref' do let(:commit_status) { create(:generic_commit_status, status: 'success') } + before { mr_merge_if_green_enabled } + it "doesn't merge a requests for status on other branch" do allow(project.repository).to receive(:branch_names_contains).with(commit_status.sha).and_return([]) |