Skip to content
Snippets Groups Projects
Commit ffe8dbde authored by Kamil Trzcinski's avatar Kamil Trzcinski Committed by Phil Hughes
Browse files

Move keep to ArtifactsController

parent aea4041c
No related branches found
No related tags found
1 merge request!4200Artifacts expire date
Loading
Loading
@@ -34,6 +34,11 @@ class Projects::ArtifactsController < Projects::ApplicationController
end
end
 
def keep
build.keep_artifacts!
redirect_to namespace_project_build_path(project.namespace, project, build)
end
private
 
def build
Loading
Loading
Loading
Loading
@@ -12,7 +12,7 @@ module Ci
scope :unstarted, ->() { where(runner_id: nil) }
scope :ignore_failures, ->() { where(allow_failure: false) }
scope :with_artifacts, ->() { where.not(artifacts_file: nil) }
scope :with_artifacts_expired, ->() { with_artifacts.where('artifacts_expire_at < ?', Time.now) }
scope :with_expired_artifacts, ->() { with_artifacts.where('artifacts_expire_at < ?', Time.now) }
 
mount_uploader :artifacts_file, ArtifactUploader
mount_uploader :artifacts_metadata, ArtifactUploader
Loading
Loading
@@ -352,10 +352,10 @@ module Ci
end
 
def artifacts_expired?
self.artifacts_expire_at < Time.now && !artifacts?
!artifacts? && artifacts_expire_at && artifacts_expire_at < Time.now
end
 
def keep_artifacts
def keep_artifacts!
self.update(artifacts_expire_at: nil)
end
 
Loading
Loading
@@ -366,7 +366,7 @@ module Ci
end
 
def update_erased!(user = nil)
self.update(erased_by: user, erased_at: Time.now)
self.update(erased_by: user, erased_at: Time.now, artifacts_expire_at: nil)
end
 
def yaml_variables
Loading
Loading
Loading
Loading
@@ -44,15 +44,16 @@
%p.build-detail-row
%span.build-light-text Erased:
#{time_ago_with_tooltip(@build.erased_at)}
- elsif @build.artifacts_expired?
%p.build-detail-row.artifacts-expired.alert.alert-warning
The artifacts were removed #{time_ago_with_tooltip(@build.artifacts_expire_at)}
- elsif @build.artifacts_expire_at
%p.build-detail-row.artifacts-expired.alert.alert-info
The artifacts will be removed at #{time_ago_with_tooltip(@build.artifacts_expire_at)}
.pull-right
= link_to keep_artifacts_namespace_project_build_artifacts_path(@project.namespace, @project, @build), class: 'btn btn-sm btn-primary' do
Keep
- else
- if @build.artifacts_expired?
.artifacts-expired.alert.alert-warning
The artifacts were removed #{time_ago_with_tooltip(@build.artifacts_expire_at)}
- elsif @build.artifacts_expire_at
.artifacts-expired.alert.alert-warning
The artifacts will be removed in #{duration_in_words(@build.artifacts_expire_at, Time.now)}
.pull-right
= link_to keep_namespace_project_build_artifacts_path(@project.namespace, @project, @build), class: 'btn btn-xs btn-primary', method: :post do
Keep
%p.build-detail-row
%span.build-light-text Runner:
- if @build.runner && current_user && current_user.admin
Loading
Loading
Loading
Loading
@@ -4,8 +4,9 @@ class ExpireBuildArtifacts
def perform
Rails.logger.info 'Cleaning old build artifacts'
 
builds = Ci::Build.with_artifacts_expired
builds = Ci::Build.with_expired_artifacts
builds.find_each(batch_size: 50).each do |build|
Rails.logger.debug "Removing artifacts build #{build.id}..."
build.erase_artifacts!
end
end
Loading
Loading
Loading
Loading
@@ -164,8 +164,8 @@ production: &base
# Flag stuck CI builds as failed
stuck_ci_builds_worker:
cron: "0 0 * * *"
# Remove old artifacts
expire_build_artifacts:
# Remove expired build artifacts
expire_build_artifacts_worker:
cron: "50 * * * *"
# Periodically run 'git fsck' on all repositories. If started more than
# once per hour you will have concurrent 'git fsck' jobs.
Loading
Loading
Loading
Loading
@@ -279,9 +279,9 @@ Settings['cron_jobs'] ||= Settingslogic.new({})
Settings.cron_jobs['stuck_ci_builds_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['stuck_ci_builds_worker']['cron'] ||= '0 0 * * *'
Settings.cron_jobs['stuck_ci_builds_worker']['job_class'] = 'StuckCiBuildsWorker'
Settings.cron_jobs['expire_build_artifacts'] ||= Settingslogic.new({})
Settings.cron_jobs['expire_build_artifacts']['cron'] ||= '0 0 * * *'
Settings.cron_jobs['expire_build_artifacts']['job_class'] = 'ExpireBuildArtifacts'
Settings.cron_jobs['expire_build_artifacts_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['expire_build_artifacts_worker']['cron'] ||= '0 0 * * *'
Settings.cron_jobs['expire_build_artifacts_worker']['job_class'] = 'ExpireBuildArtifactsWorker'
Settings.cron_jobs['repository_check_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['repository_check_worker']['cron'] ||= '20 * * * *'
Settings.cron_jobs['repository_check_worker']['job_class'] = 'RepositoryCheck::BatchWorker'
Loading
Loading
Loading
Loading
@@ -714,7 +714,6 @@ Rails.application.routes.draw do
post :cancel
post :retry
post :erase
post :keep_artifacts
get :trace
get :raw
end
Loading
Loading
@@ -723,6 +722,7 @@ Rails.application.routes.draw do
get :download
get :browse, path: 'browse(/*path)', format: false
get :file, path: 'file/*path', format: false
post :keep
end
end
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment