summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/ci/build.rb2
-rw-r--r--app/models/ci/build/erasable.rb (renamed from app/models/ci/build/eraseable.rb)12
-rw-r--r--app/views/projects/builds/show.html.haml17
-rw-r--r--db/migrate/20160202091601_add_erasable_to_ci_build.rb (renamed from db/migrate/20160202091601_add_eraseable_to_ci_build.rb)2
-rw-r--r--lib/api/builds.rb2
-rw-r--r--spec/models/ci/build/erasable_spec.rb (renamed from spec/models/ci/build/eraseable_spec.rb)32
-rw-r--r--spec/requests/api/builds_spec.rb4
7 files changed, 28 insertions, 43 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index 4e22ee3962b..9172a46b35f 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -38,7 +38,7 @@
module Ci
class Build < CommitStatus
include Gitlab::Application.routes.url_helpers
- include Build::Eraseable
+ include Build::Erasable
LAZY_ATTRIBUTES = ['trace']
diff --git a/app/models/ci/build/eraseable.rb b/app/models/ci/build/erasable.rb
index 9d3d0627b45..95e1bef58e4 100644
--- a/app/models/ci/build/eraseable.rb
+++ b/app/models/ci/build/erasable.rb
@@ -1,6 +1,6 @@
module Ci
class Build
- module Eraseable
+ module Erasable
extend ActiveSupport::Concern
included do
@@ -8,7 +8,7 @@ module Ci
end
def erase!(opts = {})
- raise StandardError, 'Build not eraseable!' unless eraseable?
+ raise StandardError, 'Build not erasable!' unless erasable?
remove_artifacts_file!
remove_artifacts_metadata!
@@ -16,16 +16,10 @@ module Ci
update_erased!(opts[:erased_by])
end
- def eraseable?
+ def erasable?
complete? && (artifacts? || has_trace?)
end
- def erase_url
- if eraseable?
- erase_namespace_project_build_path(project.namespace, project, self)
- end
- end
-
def erased?
!self.erased_at.nil?
end
diff --git a/app/views/projects/builds/show.html.haml b/app/views/projects/builds/show.html.haml
index 5809fa2d11b..0c1dc4bdeee 100644
--- a/app/views/projects/builds/show.html.haml
+++ b/app/views/projects/builds/show.html.haml
@@ -76,15 +76,15 @@
= link_to '#down-build-trace', class: 'btn' do
%i.fa.fa-angle-down
- - unless @build.erased?
+ - if @build.erased?
+ .erased.alert.alert-warning
+ - erased_by = "by #{@build.erased_by.username}" if @build.erased_by
+ Build has been erased #{erased_by} #{time_ago_with_tooltip(@build.erased_at)}
+ - else
%pre.trace#build-trace
%code.bash
= preserve do
= raw @build.trace_html
- - else
- .erased.alert.alert-warning
- - erased_by = "by #{@build.erased_by.username}" if @build.erased_by
- Build has been erased #{erased_by} #{time_ago_with_tooltip(@build.erased_at)}
%div#down-build-trace
@@ -119,9 +119,10 @@
- elsif @build.retry_url
= link_to "Retry", @build.retry_url, class: 'btn btn-sm btn-primary', method: :post
- - if @build.eraseable?
- = link_to @build.erase_url, class: 'btn btn-sm btn-warning', method: :delete,
- data: { confirm: 'Are you sure you want to erase this build?' } do
+ - if @build.erasable?
+ = link_to erase_namespace_project_build_path(@project.namespace, @project, @build),
+ class: 'btn btn-sm btn-warning', method: :delete,
+ data: { confirm: 'Are you sure you want to erase this build?' } do
= icon('eraser')
Erase
diff --git a/db/migrate/20160202091601_add_eraseable_to_ci_build.rb b/db/migrate/20160202091601_add_erasable_to_ci_build.rb
index 3db7180c1ae..f9912f2274e 100644
--- a/db/migrate/20160202091601_add_eraseable_to_ci_build.rb
+++ b/db/migrate/20160202091601_add_erasable_to_ci_build.rb
@@ -1,4 +1,4 @@
-class AddEraseableToCiBuild < ActiveRecord::Migration
+class AddErasableToCiBuild < ActiveRecord::Migration
def change
add_reference :ci_builds, :erased_by, references: :users, index: true
add_column :ci_builds, :erased_at, :datetime
diff --git a/lib/api/builds.rb b/lib/api/builds.rb
index 06ec03fc4e0..9b7a3f12d2b 100644
--- a/lib/api/builds.rb
+++ b/lib/api/builds.rb
@@ -136,7 +136,7 @@ module API
build = get_build(params[:build_id])
return not_found!(build) unless build
- return forbidden!('Build is not eraseable!') unless build.eraseable?
+ return forbidden!('Build is not erasable!') unless build.erasable?
build.erase!
present build, with: Entities::Build,
diff --git a/spec/models/ci/build/eraseable_spec.rb b/spec/models/ci/build/erasable_spec.rb
index 9e5099ce796..7cf00748dca 100644
--- a/spec/models/ci/build/eraseable_spec.rb
+++ b/spec/models/ci/build/erasable_spec.rb
@@ -1,7 +1,7 @@
require 'spec_helper'
-describe Ci::Build::Eraseable, models: true do
- shared_examples 'eraseable' do
+describe Ci::Build::Erasable, models: true do
+ shared_examples 'erasable' do
it 'should remove artifact file' do
expect(build.artifacts_file.exists?).to be_falsy
end
@@ -23,25 +23,20 @@ describe Ci::Build::Eraseable, models: true do
end
end
- context 'build is not eraseable' do
+ context 'build is not erasable' do
let!(:build) { create(:ci_build) }
describe '#erase!' do
- it { expect { build.erase! }.to raise_error(StandardError, /Build not eraseable!/ )}
+ it { expect { build.erase! }.to raise_error(StandardError, /Build not erasable!/ )}
end
- describe '#eraseable?' do
- subject { build.eraseable? }
+ describe '#erasable?' do
+ subject { build.erasable? }
it { is_expected.to eq false }
end
-
- describe '#erase_url' do
- subject { build.erase_url }
- it { is_expected.to be_falsy }
- end
end
- context 'build is eraseable' do
+ context 'build is erasable' do
let!(:build) { create(:ci_build_with_trace, :success, :artifacts) }
describe '#erase!' do
@@ -50,7 +45,7 @@ describe Ci::Build::Eraseable, models: true do
context 'erased by user' do
let!(:user) { create(:user, username: 'eraser') }
- include_examples 'eraseable'
+ include_examples 'erasable'
it 'should record user who erased a build' do
expect(build.erased_by).to eq user
@@ -60,7 +55,7 @@ describe Ci::Build::Eraseable, models: true do
context 'erased by system' do
let(:user) { nil }
- include_examples 'eraseable'
+ include_examples 'erasable'
it 'should not set user who erased a build' do
expect(build.erased_by).to be_nil
@@ -68,16 +63,11 @@ describe Ci::Build::Eraseable, models: true do
end
end
- describe '#eraseable?' do
- subject { build.eraseable? }
+ describe '#erasable?' do
+ subject { build.erasable? }
it { is_expected.to eq true }
end
- describe '#erase_url' do
- subject { build.erase_url }
- it { is_expected.to be_truthy }
- end
-
describe '#erased?' do
let!(:build) { create(:ci_build_with_trace, :success, :artifacts) }
subject { build.erased? }
diff --git a/spec/requests/api/builds_spec.rb b/spec/requests/api/builds_spec.rb
index 56ab303268f..0ea6c2c7356 100644
--- a/spec/requests/api/builds_spec.rb
+++ b/spec/requests/api/builds_spec.rb
@@ -175,7 +175,7 @@ describe API::API, api: true do
delete api("/projects/#{project.id}/builds/#{build.id}/content", user)
end
- context 'build is eraseable' do
+ context 'build is erasable' do
let(:build) { create(:ci_build_with_trace, :artifacts, :success, project: project, commit: commit) }
it 'should erase build content' do
@@ -186,7 +186,7 @@ describe API::API, api: true do
end
end
- context 'build is not eraseable' do
+ context 'build is not erasable' do
let(:build) { create(:ci_build_with_trace, project: project, commit: commit) }
it 'should respond with forbidden' do