diff options
author | Toon Claes <toon@gitlab.com> | 2019-06-13 23:07:59 +0200 |
---|---|---|
committer | Toon Claes <toon@gitlab.com> | 2019-06-28 10:02:18 +0200 |
commit | dabd91b2c8a42ac0d0c357190002a5a4b96a57a6 (patch) | |
tree | 6010ff883161d0df297005e9fc1c66ce845bf482 /spec/tasks | |
parent | 8df6508ca35f211b8ded2291785751bdbc4a8c1a (diff) | |
download | gitlab-ce-dabd91b2c8a42ac0d0c357190002a5a4b96a57a6.tar.gz |
Add rake task to clean orphan artifact filestc-rake-orphan-artifacts
This adds the rake task rake
gitlab:cleanup:orphan_job_artifact_files. This rake task cleans all
orphan job artifact files it can find on disk.
It performs a search on the complete folder of all artifacts on
disk. Then it filters out all the job artifact ID for which it could
not find a record with matching ID in the database. For these, the
file is deleted from disk.
Diffstat (limited to 'spec/tasks')
-rw-r--r-- | spec/tasks/gitlab/cleanup_rake_spec.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/tasks/gitlab/cleanup_rake_spec.rb b/spec/tasks/gitlab/cleanup_rake_spec.rb index 19794227d9f..92c094f08a4 100644 --- a/spec/tasks/gitlab/cleanup_rake_spec.rb +++ b/spec/tasks/gitlab/cleanup_rake_spec.rb @@ -156,4 +156,33 @@ describe 'gitlab:cleanup rake tasks' do end end end + + describe 'gitlab:cleanup:orphan_job_artifact_files' do + subject(:rake_task) { run_rake_task('gitlab:cleanup:orphan_job_artifact_files') } + + it 'runs the task without errors' do + expect(Gitlab::Cleanup::OrphanJobArtifactFiles) + .to receive(:new).and_call_original + + expect { rake_task }.not_to raise_error + end + + context 'with DRY_RUN set to false' do + before do + stub_env('DRY_RUN', 'false') + end + + it 'passes dry_run correctly' do + expect(Gitlab::Cleanup::OrphanJobArtifactFiles) + .to receive(:new) + .with(limit: anything, + dry_run: false, + niceness: anything, + logger: anything) + .and_call_original + + rake_task + end + end + end end |