From bc76062774f01208403685965f4d780da4e03ebb Mon Sep 17 00:00:00 2001 From: Douwe Maan Date: Thu, 7 Sep 2017 21:27:04 +0000 Subject: Merge branch 'jej/lfs-object-storage' into 'master' Can migrate LFS objects to S3 style object storage Closes #2841 See merge request !2760 --- spec/tasks/gitlab/lfs_rake_spec.rb | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 spec/tasks/gitlab/lfs_rake_spec.rb (limited to 'spec/tasks') diff --git a/spec/tasks/gitlab/lfs_rake_spec.rb b/spec/tasks/gitlab/lfs_rake_spec.rb new file mode 100644 index 00000000000..faed24f2010 --- /dev/null +++ b/spec/tasks/gitlab/lfs_rake_spec.rb @@ -0,0 +1,37 @@ +require 'rake_helper' + +describe 'gitlab:lfs namespace rake task' do + before :all do + Rake.application.rake_require 'tasks/gitlab/lfs' + end + + describe 'migrate' do + let(:local) { ObjectStoreUploader::LOCAL_STORE } + let(:remote) { ObjectStoreUploader::REMOTE_STORE } + let!(:lfs_object) { create(:lfs_object, :with_file, file_store: local) } + + def lfs_migrate + run_rake_task('gitlab:lfs:migrate') + end + + context 'object storage disabled' do + before do + stub_lfs_object_storage(enabled: false) + end + + it "doesn't migrate files" do + expect { lfs_migrate }.not_to change { lfs_object.reload.file_store } + end + end + + context 'object storage enabled' do + before do + stub_lfs_object_storage + end + + it 'migrates local file to object storage' do + expect { lfs_migrate }.to change { lfs_object.reload.file_store }.from(local).to(remote) + end + end + end +end -- cgit v1.2.3 From 6ca02a41500790b3e9061dd8836540955b9aaf7c Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Tue, 5 Dec 2017 14:31:33 +0000 Subject: Merge branch 'zj-multiple-artifacts-ee' into 'master' Multiple artifacts ee See merge request gitlab-org/gitlab-ee!3276 --- spec/tasks/gitlab/artifacts_rake_spec.rb | 118 +++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 spec/tasks/gitlab/artifacts_rake_spec.rb (limited to 'spec/tasks') diff --git a/spec/tasks/gitlab/artifacts_rake_spec.rb b/spec/tasks/gitlab/artifacts_rake_spec.rb new file mode 100644 index 00000000000..a30823b8875 --- /dev/null +++ b/spec/tasks/gitlab/artifacts_rake_spec.rb @@ -0,0 +1,118 @@ +require 'rake_helper' + +describe 'gitlab:artifacts namespace rake task' do + before(:context) do + Rake.application.rake_require 'tasks/gitlab/artifacts' + end + + let(:object_storage_enabled) { false } + + before do + stub_artifacts_object_storage(enabled: object_storage_enabled) + end + + subject { run_rake_task('gitlab:artifacts:migrate') } + + context 'legacy artifacts' do + describe 'migrate' do + let!(:build) { create(:ci_build, :legacy_artifacts, artifacts_file_store: store, artifacts_metadata_store: store) } + + context 'when local storage is used' do + let(:store) { ObjectStoreUploader::LOCAL_STORE } + + context 'and job does not have file store defined' do + let(:object_storage_enabled) { true } + let(:store) { nil } + + it "migrates file to remote storage" do + subject + + expect(build.reload.artifacts_file_store).to eq(ObjectStoreUploader::REMOTE_STORE) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStoreUploader::REMOTE_STORE) + end + end + + context 'and remote storage is defined' do + let(:object_storage_enabled) { true } + + it "migrates file to remote storage" do + subject + + expect(build.reload.artifacts_file_store).to eq(ObjectStoreUploader::REMOTE_STORE) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStoreUploader::REMOTE_STORE) + end + end + + context 'and remote storage is not defined' do + it "fails to migrate to remote storage" do + subject + + expect(build.reload.artifacts_file_store).to eq(ObjectStoreUploader::LOCAL_STORE) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStoreUploader::LOCAL_STORE) + end + end + end + + context 'when remote storage is used' do + let(:object_storage_enabled) { true } + + let(:store) { ObjectStoreUploader::REMOTE_STORE } + + it "file stays on remote storage" do + subject + + expect(build.reload.artifacts_file_store).to eq(ObjectStoreUploader::REMOTE_STORE) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStoreUploader::REMOTE_STORE) + end + end + end + end + + context 'job artifacts' do + let!(:artifact) { create(:ci_job_artifact, :archive, file_store: store) } + + context 'when local storage is used' do + let(:store) { ObjectStoreUploader::LOCAL_STORE } + + context 'and job does not have file store defined' do + let(:object_storage_enabled) { true } + let(:store) { nil } + + it "migrates file to remote storage" do + subject + + expect(artifact.reload.file_store).to eq(ObjectStoreUploader::REMOTE_STORE) + end + end + + context 'and remote storage is defined' do + let(:object_storage_enabled) { true } + + it "migrates file to remote storage" do + subject + + expect(artifact.reload.file_store).to eq(ObjectStoreUploader::REMOTE_STORE) + end + end + + context 'and remote storage is not defined' do + it "fails to migrate to remote storage" do + subject + + expect(artifact.reload.file_store).to eq(ObjectStoreUploader::LOCAL_STORE) + end + end + end + + context 'when remote storage is used' do + let(:object_storage_enabled) { true } + let(:store) { ObjectStoreUploader::REMOTE_STORE } + + it "file stays on remote storage" do + subject + + expect(artifact.reload.file_store).to eq(ObjectStoreUploader::REMOTE_STORE) + end + end + end +end -- cgit v1.2.3 From a7dae52e9d27adde427ef8aa066c0761071a3cd9 Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Fri, 2 Feb 2018 13:59:43 +0000 Subject: Merge branch '4163-move-uploads-to-object-storage' into 'master' Move uploads to object storage Closes #4163 See merge request gitlab-org/gitlab-ee!3867 --- spec/tasks/gitlab/artifacts_rake_spec.rb | 32 ++++++++++++++++---------------- spec/tasks/gitlab/lfs_rake_spec.rb | 4 ++-- 2 files changed, 18 insertions(+), 18 deletions(-) (limited to 'spec/tasks') diff --git a/spec/tasks/gitlab/artifacts_rake_spec.rb b/spec/tasks/gitlab/artifacts_rake_spec.rb index a30823b8875..570c7fa7503 100644 --- a/spec/tasks/gitlab/artifacts_rake_spec.rb +++ b/spec/tasks/gitlab/artifacts_rake_spec.rb @@ -18,7 +18,7 @@ describe 'gitlab:artifacts namespace rake task' do let!(:build) { create(:ci_build, :legacy_artifacts, artifacts_file_store: store, artifacts_metadata_store: store) } context 'when local storage is used' do - let(:store) { ObjectStoreUploader::LOCAL_STORE } + let(:store) { ObjectStorage::Store::LOCAL } context 'and job does not have file store defined' do let(:object_storage_enabled) { true } @@ -27,8 +27,8 @@ describe 'gitlab:artifacts namespace rake task' do it "migrates file to remote storage" do subject - expect(build.reload.artifacts_file_store).to eq(ObjectStoreUploader::REMOTE_STORE) - expect(build.reload.artifacts_metadata_store).to eq(ObjectStoreUploader::REMOTE_STORE) + expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::REMOTE) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::REMOTE) end end @@ -38,8 +38,8 @@ describe 'gitlab:artifacts namespace rake task' do it "migrates file to remote storage" do subject - expect(build.reload.artifacts_file_store).to eq(ObjectStoreUploader::REMOTE_STORE) - expect(build.reload.artifacts_metadata_store).to eq(ObjectStoreUploader::REMOTE_STORE) + expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::REMOTE) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::REMOTE) end end @@ -47,8 +47,8 @@ describe 'gitlab:artifacts namespace rake task' do it "fails to migrate to remote storage" do subject - expect(build.reload.artifacts_file_store).to eq(ObjectStoreUploader::LOCAL_STORE) - expect(build.reload.artifacts_metadata_store).to eq(ObjectStoreUploader::LOCAL_STORE) + expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::LOCAL) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::LOCAL) end end end @@ -56,13 +56,13 @@ describe 'gitlab:artifacts namespace rake task' do context 'when remote storage is used' do let(:object_storage_enabled) { true } - let(:store) { ObjectStoreUploader::REMOTE_STORE } + let(:store) { ObjectStorage::Store::REMOTE } it "file stays on remote storage" do subject - expect(build.reload.artifacts_file_store).to eq(ObjectStoreUploader::REMOTE_STORE) - expect(build.reload.artifacts_metadata_store).to eq(ObjectStoreUploader::REMOTE_STORE) + expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::REMOTE) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::REMOTE) end end end @@ -72,7 +72,7 @@ describe 'gitlab:artifacts namespace rake task' do let!(:artifact) { create(:ci_job_artifact, :archive, file_store: store) } context 'when local storage is used' do - let(:store) { ObjectStoreUploader::LOCAL_STORE } + let(:store) { ObjectStorage::Store::LOCAL } context 'and job does not have file store defined' do let(:object_storage_enabled) { true } @@ -81,7 +81,7 @@ describe 'gitlab:artifacts namespace rake task' do it "migrates file to remote storage" do subject - expect(artifact.reload.file_store).to eq(ObjectStoreUploader::REMOTE_STORE) + expect(artifact.reload.file_store).to eq(ObjectStorage::Store::REMOTE) end end @@ -91,7 +91,7 @@ describe 'gitlab:artifacts namespace rake task' do it "migrates file to remote storage" do subject - expect(artifact.reload.file_store).to eq(ObjectStoreUploader::REMOTE_STORE) + expect(artifact.reload.file_store).to eq(ObjectStorage::Store::REMOTE) end end @@ -99,19 +99,19 @@ describe 'gitlab:artifacts namespace rake task' do it "fails to migrate to remote storage" do subject - expect(artifact.reload.file_store).to eq(ObjectStoreUploader::LOCAL_STORE) + expect(artifact.reload.file_store).to eq(ObjectStorage::Store::LOCAL) end end end context 'when remote storage is used' do let(:object_storage_enabled) { true } - let(:store) { ObjectStoreUploader::REMOTE_STORE } + let(:store) { ObjectStorage::Store::REMOTE } it "file stays on remote storage" do subject - expect(artifact.reload.file_store).to eq(ObjectStoreUploader::REMOTE_STORE) + expect(artifact.reload.file_store).to eq(ObjectStorage::Store::REMOTE) end end end diff --git a/spec/tasks/gitlab/lfs_rake_spec.rb b/spec/tasks/gitlab/lfs_rake_spec.rb index faed24f2010..f1b677bd6ee 100644 --- a/spec/tasks/gitlab/lfs_rake_spec.rb +++ b/spec/tasks/gitlab/lfs_rake_spec.rb @@ -6,8 +6,8 @@ describe 'gitlab:lfs namespace rake task' do end describe 'migrate' do - let(:local) { ObjectStoreUploader::LOCAL_STORE } - let(:remote) { ObjectStoreUploader::REMOTE_STORE } + let(:local) { ObjectStorage::Store::LOCAL } + let(:remote) { ObjectStorage::Store::REMOTE } let!(:lfs_object) { create(:lfs_object, :with_file, file_store: local) } def lfs_migrate -- cgit v1.2.3 From a8df653faeec9147725a391d6de49d1b9fe4528e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mica=C3=ABl=20Bergeron?= Date: Wed, 21 Feb 2018 16:09:53 -0500 Subject: another round of fixes --- spec/tasks/gitlab/uploads/migrate_rake_spec.rb | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 spec/tasks/gitlab/uploads/migrate_rake_spec.rb (limited to 'spec/tasks') diff --git a/spec/tasks/gitlab/uploads/migrate_rake_spec.rb b/spec/tasks/gitlab/uploads/migrate_rake_spec.rb new file mode 100644 index 00000000000..b778d26060d --- /dev/null +++ b/spec/tasks/gitlab/uploads/migrate_rake_spec.rb @@ -0,0 +1,28 @@ +require 'rake_helper' + +describe 'gitlab:uploads:migrate rake tasks' do + let!(:projects) { create_list(:project, 10, :with_avatar) } + let(:model_class) { Project } + let(:uploader_class) { AvatarUploader } + let(:mounted_as) { :avatar } + let(:batch_size) { 3 } + + before do + stub_env('BATCH', batch_size.to_s) + stub_uploads_object_storage(uploader_class) + Rake.application.rake_require 'tasks/gitlab/uploads/migrate' + + allow(ObjectStorage::MigrateUploadsWorker).to receive(:perform_async) + end + + def run + args = [uploader_class.to_s, model_class.to_s, mounted_as].compact + run_rake_task("gitlab:uploads:migrate", *args) + end + + it 'enqueue jobs in batch' do + expect(ObjectStorage::MigrateUploadsWorker).to receive(:enqueue!).exactly(4).times + + run + end +end -- cgit v1.2.3 From edbcde8877f497ea675fde811065679286a1aa56 Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Mon, 5 Mar 2018 11:16:17 +0000 Subject: [cherry-pick] '4862-verify-file-checksums' See merge request gitlab-org/gitlab-ee!4753 --- spec/tasks/gitlab/lfs/check_rake_spec.rb | 28 +++++++++++++++++++++ spec/tasks/gitlab/lfs/migrate_rake_spec.rb | 37 ++++++++++++++++++++++++++++ spec/tasks/gitlab/lfs_rake_spec.rb | 37 ---------------------------- spec/tasks/gitlab/uploads/check_rake_spec.rb | 28 +++++++++++++++++++++ 4 files changed, 93 insertions(+), 37 deletions(-) create mode 100644 spec/tasks/gitlab/lfs/check_rake_spec.rb create mode 100644 spec/tasks/gitlab/lfs/migrate_rake_spec.rb delete mode 100644 spec/tasks/gitlab/lfs_rake_spec.rb create mode 100644 spec/tasks/gitlab/uploads/check_rake_spec.rb (limited to 'spec/tasks') diff --git a/spec/tasks/gitlab/lfs/check_rake_spec.rb b/spec/tasks/gitlab/lfs/check_rake_spec.rb new file mode 100644 index 00000000000..2610edf8bac --- /dev/null +++ b/spec/tasks/gitlab/lfs/check_rake_spec.rb @@ -0,0 +1,28 @@ +require 'rake_helper' + +describe 'gitlab:lfs rake tasks' do + describe 'check' do + let!(:lfs_object) { create(:lfs_object, :with_file, :correct_oid) } + + before do + Rake.application.rake_require('tasks/gitlab/lfs/check') + stub_env('VERBOSE' => 'true') + end + + it 'outputs the integrity check for each batch' do + expect { run_rake_task('gitlab:lfs:check') }.to output(/Failures: 0/).to_stdout + end + + it 'errors out about missing files on the file system' do + FileUtils.rm_f(lfs_object.file.path) + + expect { run_rake_task('gitlab:lfs:check') }.to output(/No such file.*#{Regexp.quote(lfs_object.file.path)}/).to_stdout + end + + it 'errors out about invalid checksum' do + File.truncate(lfs_object.file.path, 0) + + expect { run_rake_task('gitlab:lfs:check') }.to output(/Checksum mismatch/).to_stdout + end + end +end diff --git a/spec/tasks/gitlab/lfs/migrate_rake_spec.rb b/spec/tasks/gitlab/lfs/migrate_rake_spec.rb new file mode 100644 index 00000000000..66d1a192a96 --- /dev/null +++ b/spec/tasks/gitlab/lfs/migrate_rake_spec.rb @@ -0,0 +1,37 @@ +require 'rake_helper' + +describe 'gitlab:lfs namespace rake task' do + before :all do + Rake.application.rake_require 'tasks/gitlab/lfs/migrate' + end + + describe 'migrate' do + let(:local) { ObjectStorage::Store::LOCAL } + let(:remote) { ObjectStorage::Store::REMOTE } + let!(:lfs_object) { create(:lfs_object, :with_file, file_store: local) } + + def lfs_migrate + run_rake_task('gitlab:lfs:migrate') + end + + context 'object storage disabled' do + before do + stub_lfs_object_storage(enabled: false) + end + + it "doesn't migrate files" do + expect { lfs_migrate }.not_to change { lfs_object.reload.file_store } + end + end + + context 'object storage enabled' do + before do + stub_lfs_object_storage + end + + it 'migrates local file to object storage' do + expect { lfs_migrate }.to change { lfs_object.reload.file_store }.from(local).to(remote) + end + end + end +end diff --git a/spec/tasks/gitlab/lfs_rake_spec.rb b/spec/tasks/gitlab/lfs_rake_spec.rb deleted file mode 100644 index f1b677bd6ee..00000000000 --- a/spec/tasks/gitlab/lfs_rake_spec.rb +++ /dev/null @@ -1,37 +0,0 @@ -require 'rake_helper' - -describe 'gitlab:lfs namespace rake task' do - before :all do - Rake.application.rake_require 'tasks/gitlab/lfs' - end - - describe 'migrate' do - let(:local) { ObjectStorage::Store::LOCAL } - let(:remote) { ObjectStorage::Store::REMOTE } - let!(:lfs_object) { create(:lfs_object, :with_file, file_store: local) } - - def lfs_migrate - run_rake_task('gitlab:lfs:migrate') - end - - context 'object storage disabled' do - before do - stub_lfs_object_storage(enabled: false) - end - - it "doesn't migrate files" do - expect { lfs_migrate }.not_to change { lfs_object.reload.file_store } - end - end - - context 'object storage enabled' do - before do - stub_lfs_object_storage - end - - it 'migrates local file to object storage' do - expect { lfs_migrate }.to change { lfs_object.reload.file_store }.from(local).to(remote) - end - end - end -end diff --git a/spec/tasks/gitlab/uploads/check_rake_spec.rb b/spec/tasks/gitlab/uploads/check_rake_spec.rb new file mode 100644 index 00000000000..5d597c66133 --- /dev/null +++ b/spec/tasks/gitlab/uploads/check_rake_spec.rb @@ -0,0 +1,28 @@ +require 'rake_helper' + +describe 'gitlab:uploads rake tasks' do + describe 'check' do + let!(:upload) { create(:upload, path: Rails.root.join('spec/fixtures/banana_sample.gif')) } + + before do + Rake.application.rake_require('tasks/gitlab/uploads/check') + stub_env('VERBOSE' => 'true') + end + + it 'outputs the integrity check for each batch' do + expect { run_rake_task('gitlab:uploads:check') }.to output(/Failures: 0/).to_stdout + end + + it 'errors out about missing files on the file system' do + missing_upload = create(:upload) + + expect { run_rake_task('gitlab:uploads:check') }.to output(/No such file.*#{Regexp.quote(missing_upload.absolute_path)}/).to_stdout + end + + it 'errors out about invalid checksum' do + upload.update_column(:checksum, '01a3156db2cf4f67ec823680b40b7302f89ab39179124ad219f94919b8a1769e') + + expect { run_rake_task('gitlab:uploads:check') }.to output(/Checksum mismatch/).to_stdout + end + end +end -- cgit v1.2.3 From 764b5fdd162d159bc6d8fb81adf71e32f5901de1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mica=C3=ABl=20Bergeron?= Date: Thu, 22 Mar 2018 13:35:42 -0400 Subject: Backport EE changes --- spec/tasks/gitlab/artifacts/migrate_rake_spec.rb | 118 +++++++++++++++++++++++ spec/tasks/gitlab/artifacts_rake_spec.rb | 118 ----------------------- 2 files changed, 118 insertions(+), 118 deletions(-) create mode 100644 spec/tasks/gitlab/artifacts/migrate_rake_spec.rb delete mode 100644 spec/tasks/gitlab/artifacts_rake_spec.rb (limited to 'spec/tasks') diff --git a/spec/tasks/gitlab/artifacts/migrate_rake_spec.rb b/spec/tasks/gitlab/artifacts/migrate_rake_spec.rb new file mode 100644 index 00000000000..570c7fa7503 --- /dev/null +++ b/spec/tasks/gitlab/artifacts/migrate_rake_spec.rb @@ -0,0 +1,118 @@ +require 'rake_helper' + +describe 'gitlab:artifacts namespace rake task' do + before(:context) do + Rake.application.rake_require 'tasks/gitlab/artifacts' + end + + let(:object_storage_enabled) { false } + + before do + stub_artifacts_object_storage(enabled: object_storage_enabled) + end + + subject { run_rake_task('gitlab:artifacts:migrate') } + + context 'legacy artifacts' do + describe 'migrate' do + let!(:build) { create(:ci_build, :legacy_artifacts, artifacts_file_store: store, artifacts_metadata_store: store) } + + context 'when local storage is used' do + let(:store) { ObjectStorage::Store::LOCAL } + + context 'and job does not have file store defined' do + let(:object_storage_enabled) { true } + let(:store) { nil } + + it "migrates file to remote storage" do + subject + + expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::REMOTE) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::REMOTE) + end + end + + context 'and remote storage is defined' do + let(:object_storage_enabled) { true } + + it "migrates file to remote storage" do + subject + + expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::REMOTE) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::REMOTE) + end + end + + context 'and remote storage is not defined' do + it "fails to migrate to remote storage" do + subject + + expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::LOCAL) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::LOCAL) + end + end + end + + context 'when remote storage is used' do + let(:object_storage_enabled) { true } + + let(:store) { ObjectStorage::Store::REMOTE } + + it "file stays on remote storage" do + subject + + expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::REMOTE) + expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::REMOTE) + end + end + end + end + + context 'job artifacts' do + let!(:artifact) { create(:ci_job_artifact, :archive, file_store: store) } + + context 'when local storage is used' do + let(:store) { ObjectStorage::Store::LOCAL } + + context 'and job does not have file store defined' do + let(:object_storage_enabled) { true } + let(:store) { nil } + + it "migrates file to remote storage" do + subject + + expect(artifact.reload.file_store).to eq(ObjectStorage::Store::REMOTE) + end + end + + context 'and remote storage is defined' do + let(:object_storage_enabled) { true } + + it "migrates file to remote storage" do + subject + + expect(artifact.reload.file_store).to eq(ObjectStorage::Store::REMOTE) + end + end + + context 'and remote storage is not defined' do + it "fails to migrate to remote storage" do + subject + + expect(artifact.reload.file_store).to eq(ObjectStorage::Store::LOCAL) + end + end + end + + context 'when remote storage is used' do + let(:object_storage_enabled) { true } + let(:store) { ObjectStorage::Store::REMOTE } + + it "file stays on remote storage" do + subject + + expect(artifact.reload.file_store).to eq(ObjectStorage::Store::REMOTE) + end + end + end +end diff --git a/spec/tasks/gitlab/artifacts_rake_spec.rb b/spec/tasks/gitlab/artifacts_rake_spec.rb deleted file mode 100644 index 570c7fa7503..00000000000 --- a/spec/tasks/gitlab/artifacts_rake_spec.rb +++ /dev/null @@ -1,118 +0,0 @@ -require 'rake_helper' - -describe 'gitlab:artifacts namespace rake task' do - before(:context) do - Rake.application.rake_require 'tasks/gitlab/artifacts' - end - - let(:object_storage_enabled) { false } - - before do - stub_artifacts_object_storage(enabled: object_storage_enabled) - end - - subject { run_rake_task('gitlab:artifacts:migrate') } - - context 'legacy artifacts' do - describe 'migrate' do - let!(:build) { create(:ci_build, :legacy_artifacts, artifacts_file_store: store, artifacts_metadata_store: store) } - - context 'when local storage is used' do - let(:store) { ObjectStorage::Store::LOCAL } - - context 'and job does not have file store defined' do - let(:object_storage_enabled) { true } - let(:store) { nil } - - it "migrates file to remote storage" do - subject - - expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::REMOTE) - expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::REMOTE) - end - end - - context 'and remote storage is defined' do - let(:object_storage_enabled) { true } - - it "migrates file to remote storage" do - subject - - expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::REMOTE) - expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::REMOTE) - end - end - - context 'and remote storage is not defined' do - it "fails to migrate to remote storage" do - subject - - expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::LOCAL) - expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::LOCAL) - end - end - end - - context 'when remote storage is used' do - let(:object_storage_enabled) { true } - - let(:store) { ObjectStorage::Store::REMOTE } - - it "file stays on remote storage" do - subject - - expect(build.reload.artifacts_file_store).to eq(ObjectStorage::Store::REMOTE) - expect(build.reload.artifacts_metadata_store).to eq(ObjectStorage::Store::REMOTE) - end - end - end - end - - context 'job artifacts' do - let!(:artifact) { create(:ci_job_artifact, :archive, file_store: store) } - - context 'when local storage is used' do - let(:store) { ObjectStorage::Store::LOCAL } - - context 'and job does not have file store defined' do - let(:object_storage_enabled) { true } - let(:store) { nil } - - it "migrates file to remote storage" do - subject - - expect(artifact.reload.file_store).to eq(ObjectStorage::Store::REMOTE) - end - end - - context 'and remote storage is defined' do - let(:object_storage_enabled) { true } - - it "migrates file to remote storage" do - subject - - expect(artifact.reload.file_store).to eq(ObjectStorage::Store::REMOTE) - end - end - - context 'and remote storage is not defined' do - it "fails to migrate to remote storage" do - subject - - expect(artifact.reload.file_store).to eq(ObjectStorage::Store::LOCAL) - end - end - end - - context 'when remote storage is used' do - let(:object_storage_enabled) { true } - let(:store) { ObjectStorage::Store::REMOTE } - - it "file stays on remote storage" do - subject - - expect(artifact.reload.file_store).to eq(ObjectStorage::Store::REMOTE) - end - end - end -end -- cgit v1.2.3 From b08a1cd2c406919491f8a91e51aa0034762df14e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mica=C3=ABl=20Bergeron?= Date: Thu, 22 Mar 2018 14:37:47 -0400 Subject: fix the failing specs --- spec/tasks/gitlab/artifacts/migrate_rake_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'spec/tasks') diff --git a/spec/tasks/gitlab/artifacts/migrate_rake_spec.rb b/spec/tasks/gitlab/artifacts/migrate_rake_spec.rb index 570c7fa7503..8544fb62b5a 100644 --- a/spec/tasks/gitlab/artifacts/migrate_rake_spec.rb +++ b/spec/tasks/gitlab/artifacts/migrate_rake_spec.rb @@ -2,7 +2,7 @@ require 'rake_helper' describe 'gitlab:artifacts namespace rake task' do before(:context) do - Rake.application.rake_require 'tasks/gitlab/artifacts' + Rake.application.rake_require 'tasks/gitlab/artifacts/migrate' end let(:object_storage_enabled) { false } -- cgit v1.2.3