Fix name of build erasable, remove superfluous method from it
This commit is contained in:
parent
ec5c3c029c
commit
293999cabb
|
@ -38,7 +38,7 @@
|
|||
module Ci
|
||||
class Build < CommitStatus
|
||||
include Gitlab::Application.routes.url_helpers
|
||||
include Build::Eraseable
|
||||
include Build::Erasable
|
||||
|
||||
LAZY_ATTRIBUTES = ['trace']
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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,
|
||||
|
|
|
@ -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? }
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue