summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2015-10-13 16:51:13 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2015-10-14 12:56:52 +0200
commit33c9d6e45c0800fd5a312af2c286826764fd7589 (patch)
tree79fc6ac7c69516e6f33d5f21539d5e8517072831
parent82da19cecd6390d2372bad36da0a9f89b21abb38 (diff)
downloadgitlab-ce-fix-retry-and-cancel.tar.gz
Fix retry and cancel for buildfix-retry-and-cancel
-rw-r--r--app/models/ci/build.rb4
-rw-r--r--app/views/projects/commit/ci.html.haml22
-rw-r--r--app/views/projects/commit_statuses/_commit_status.html.haml6
-rw-r--r--spec/features/commits_spec.rb10
4 files changed, 27 insertions, 15 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index f8c731a7bf7..cfafbf6786e 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -220,14 +220,14 @@ module Ci
def cancel_url
if active?
Gitlab::Application.routes.url_helpers.
- cancel_namespace_project_build_path(gl_project.namespace, gl_project, self, return_to: request.original_url)
+ cancel_namespace_project_build_path(gl_project.namespace, gl_project, self)
end
end
def retry_url
if commands.present?
Gitlab::Application.routes.url_helpers.
- cancel_namespace_project_build_path(gl_project.namespace, gl_project, self, return_to: request.original_url)
+ retry_namespace_project_build_path(gl_project.namespace, gl_project, self)
end
end
diff --git a/app/views/projects/commit/ci.html.haml b/app/views/projects/commit/ci.html.haml
index 4a1ef378a30..ca71a91af15 100644
--- a/app/views/projects/commit/ci.html.haml
+++ b/app/views/projects/commit/ci.html.haml
@@ -3,11 +3,6 @@
= render "commit_box"
= render "ci_menu"
-- if @ci_project && current_user && can?(current_user, :manage_builds, @project)
- .pull-right
- - if @ci_commit.builds.running_or_pending.any?
- = link_to "Cancel", cancel_builds_namespace_project_commit_path(@project.namespace, @project, @commit.sha), class: 'btn btn-sm btn-danger'
-
- if @ci_commit.yaml_errors.present?
.bs-callout.bs-callout-danger
@@ -22,11 +17,18 @@
.gray-content-block.second-block
Latest builds
- - if @ci_commit.duration > 0
- %small.pull-right
+
+ .pull-right
+ - if @ci_commit.duration > 0
%i.fa.fa-time
#{time_interval_in_words @ci_commit.duration}
+ &nbsp;
+
+ - if @ci_project && current_user && can?(current_user, :manage_builds, @project)
+ - if @ci_commit.builds.running_or_pending.any?
+ = link_to "Cancel all", cancel_builds_namespace_project_commit_path(@project.namespace, @project, @commit.sha), class: 'btn btn-xs btn-danger'
+
%table.table.builds
%thead
%tr
@@ -41,7 +43,8 @@
%th Coverage
%th
- @ci_commit.refs.each do |ref|
- = render partial: "projects/commit_statuses/commit_status", collection: @ci_commit.statuses.for_ref(ref).latest.ordered, coverage: @ci_project.try(:coverage_enabled?), controls: true
+ = render partial: "projects/commit_statuses/commit_status", collection: @ci_commit.statuses.for_ref(ref).latest.ordered,
+ locals: { coverage: @ci_project.try(:coverage_enabled?), allow_retry: true }
- if @ci_commit.retried.any?
.gray-content-block.second-block
@@ -60,4 +63,5 @@
- if @ci_project && @ci_project.coverage_enabled?
%th Coverage
%th
- = render partial: "projects/commit_statuses/commit_status", collection: @ci_commit.retried, coverage: @ci_project.try(:coverage_enabled?)
+ = render partial: "projects/commit_statuses/commit_status", collection: @ci_commit.retried,
+ locals: { coverage: @ci_project.try(:coverage_enabled?) }
diff --git a/app/views/projects/commit_statuses/_commit_status.html.haml b/app/views/projects/commit_statuses/_commit_status.html.haml
index e3a17faf0bd..7314f8e79d3 100644
--- a/app/views/projects/commit_statuses/_commit_status.html.haml
+++ b/app/views/projects/commit_statuses/_commit_status.html.haml
@@ -41,11 +41,11 @@
#{commit_status.coverage}%
%td
- - if defined?(controls) && controls && current_user && can?(current_user, :manage_builds, gl_project)
- .pull-right
+ .pull-right
+ - if current_user && can?(current_user, :manage_builds, commit_status.gl_project)
- if commit_status.cancel_url
= link_to commit_status.cancel_url, title: 'Cancel' do
%i.fa.fa-remove.cred
- - elsif commit_status.retry_url
+ - elsif defined?(allow_retry) && allow_retry && commit_status.retry_url
= link_to commit_status.retry_url, method: :post, title: 'Retry' do
%i.fa.fa-repeat
diff --git a/spec/features/commits_spec.rb b/spec/features/commits_spec.rb
index cbb6360069b..1adc2cdf70a 100644
--- a/spec/features/commits_spec.rb
+++ b/spec/features/commits_spec.rb
@@ -29,9 +29,17 @@ describe "Commits" do
it { expect(page).to have_content @commit.git_author_name }
end
- describe "Cancel commit" do
+ describe "Cancel all builds" do
it "cancels commit" do
visit ci_status_path(@commit)
+ click_on "Cancel all"
+ expect(page).to have_content "canceled"
+ end
+ end
+
+ describe "Cancel build" do
+ it "cancels build" do
+ visit ci_status_path(@commit)
click_on "Cancel"
expect(page).to have_content "canceled"
end