Skip to content
Snippets Groups Projects
Commit 5456859b authored by Grzegorz Bizon's avatar Grzegorz Bizon
Browse files

Add method that checks for expiring build artifacts

parent 4a7e1423
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -507,6 +507,10 @@ module Ci
end
end
 
def has_expiring_artifacts?
artifacts_expire_at.present?
end
def keep_artifacts!
self.update(artifacts_expire_at: nil)
end
Loading
Loading
Loading
Loading
@@ -22,14 +22,14 @@
%p.build-detail-row
The artifacts were removed
#{time_ago_with_tooltip(@build.artifacts_expire_at)}
- elsif @build.artifacts_expire_at
- elsif @build.has_expiring_artifacts?
%p.build-detail-row
The artifacts will be removed in
%span.js-artifacts-remove= @build.artifacts_expire_at
 
- if @build.artifacts?
.btn-group.btn-group-justified{ role: :group }
- if @build.artifacts_expire_at && can?(current_user, :update_build, @build)
- if @build.has_expiring_artifacts? && can?(current_user, :update_build, @build)
= link_to keep_namespace_project_build_artifacts_path(@project.namespace, @project, @build), class: 'btn btn-sm btn-default', method: :post do
Keep
 
Loading
Loading
Loading
Loading
@@ -155,8 +155,8 @@ feature 'Builds', :feature do
 
click_link 'Keep'
 
expect(page).not_to have_link 'Keep'
expect(page).not_to have_content 'The artifacts will be removed'
expect(page).to have_no_link 'Keep'
expect(page).to have_no_content 'The artifacts will be removed'
end
end
 
Loading
Loading
Loading
Loading
@@ -652,6 +652,24 @@ describe Ci::Build, models: true do
end
end
 
describe '#has_expiring_artifacts?' do
context 'when artifacts have expiration date set' do
before { build.update(artifacts_expire_at: 1.day.from_now) }
it 'has expiring artifacts' do
expect(build).to have_expiring_artifacts
end
end
context 'when artifacts do not have expiration date set' do
before { build.update(artifacts_expire_at: nil) }
it 'does not have expiring artifacts' do
expect(build).not_to have_expiring_artifacts
end
end
end
describe '#artifacts_metadata?' do
subject { build.artifacts_metadata? }
context 'artifacts metadata does not exist' do
Loading
Loading
@@ -663,19 +681,6 @@ describe Ci::Build, models: true do
it { is_expected.to be_truthy }
end
end
describe '#repo_url' do
let(:build) { create(:ci_build) }
let(:project) { build.project }
subject { build.repo_url }
it { is_expected.to be_a(String) }
it { is_expected.to end_with(".git") }
it { is_expected.to start_with(project.web_url[0..6]) }
it { is_expected.to include(build.token) }
it { is_expected.to include('gitlab-ci-token') }
it { is_expected.to include(project.web_url[7..-1]) }
end
 
describe '#artifacts_expire_in' do
subject { build.artifacts_expire_in }
Loading
Loading
@@ -721,6 +726,20 @@ describe Ci::Build, models: true do
end
end
 
describe '#repo_url' do
let(:build) { create(:ci_build) }
let(:project) { build.project }
subject { build.repo_url }
it { is_expected.to be_a(String) }
it { is_expected.to end_with(".git") }
it { is_expected.to start_with(project.web_url[0..6]) }
it { is_expected.to include(build.token) }
it { is_expected.to include('gitlab-ci-token') }
it { is_expected.to include(project.web_url[7..-1]) }
end
describe '#depends_on_builds' do
let!(:build) { create(:ci_build, pipeline: pipeline, name: 'build', stage_idx: 0, stage: 'build') }
let!(:rspec_test) { create(:ci_build, pipeline: pipeline, name: 'rspec', stage_idx: 1, stage: 'test') }
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment