summaryrefslogtreecommitdiff
path: root/spec/tasks
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-05 00:07:49 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-05 00:07:49 +0000
commit77237c5a6b9044f58beabc54d3589e5fa09cbfba (patch)
treef43188047fe8955f6cf78e05ae9c2e8f6a019e0b /spec/tasks
parent2fd92f2dc784ade9cb4e1c33dd60cbfad7b86818 (diff)
downloadgitlab-ce-77237c5a6b9044f58beabc54d3589e5fa09cbfba.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/tasks')
-rw-r--r--spec/tasks/gitlab/backup_rake_spec.rb67
1 files changed, 57 insertions, 10 deletions
diff --git a/spec/tasks/gitlab/backup_rake_spec.rb b/spec/tasks/gitlab/backup_rake_spec.rb
index e58919c8688..5e15ade492b 100644
--- a/spec/tasks/gitlab/backup_rake_spec.rb
+++ b/spec/tasks/gitlab/backup_rake_spec.rb
@@ -14,6 +14,14 @@ describe 'gitlab:app namespace rake task' do
tars_glob.first
end
+ def backup_files
+ %w(backup_information.yml artifacts.tar.gz builds.tar.gz lfs.tar.gz pages.tar.gz)
+ end
+
+ def backup_directories
+ %w(db repositories)
+ end
+
before(:all) do
Rake.application.rake_require 'tasks/gitlab/helpers'
Rake.application.rake_require 'tasks/gitlab/backup'
@@ -28,12 +36,16 @@ describe 'gitlab:app namespace rake task' do
before do
stub_env('force', 'yes')
FileUtils.rm(tars_glob, force: true)
+ FileUtils.rm(backup_files, force: true)
+ FileUtils.rm_rf(backup_directories, secure: true)
reenable_backup_sub_tasks
stub_container_registry_config(enabled: enable_registry)
end
after do
FileUtils.rm(tars_glob, force: true)
+ FileUtils.rm(backup_files, force: true)
+ FileUtils.rm_rf(backup_directories, secure: true)
end
def run_rake_task(task_name)
@@ -62,15 +74,6 @@ describe 'gitlab:app namespace rake task' do
let(:gitlab_version) { Gitlab::VERSION }
- it 'fails on mismatch' do
- allow(YAML).to receive(:load_file)
- .and_return({ gitlab_version: "not #{gitlab_version}" })
-
- expect do
- expect { run_rake_task('gitlab:backup:restore') }.to output.to_stdout
- end.to raise_error(SystemExit)
- end
-
context 'restore with matching gitlab version' do
before do
allow(YAML).to receive(:load_file)
@@ -241,7 +244,7 @@ describe 'gitlab:app namespace rake task' do
)
expect(exit_status).to eq(0)
- expect(tar_contents).to match('db/')
+ expect(tar_contents).to match('db')
expect(tar_contents).to match('uploads.tar.gz')
expect(tar_contents).to match('repositories/')
expect(tar_contents).to match('builds.tar.gz')
@@ -379,6 +382,50 @@ describe 'gitlab:app namespace rake task' do
end
end
+ describe 'skipping tar archive creation' do
+ before do
+ stub_env('SKIP', 'tar')
+ end
+
+ it 'created files with backup content and no tar archive' do
+ expect { run_rake_task('gitlab:backup:create') }.to output.to_stdout
+
+ dir_contents = Dir.children(Gitlab.config.backup.path)
+
+ expect(dir_contents).to contain_exactly(
+ 'backup_information.yml',
+ 'db',
+ 'uploads.tar.gz',
+ 'builds.tar.gz',
+ 'artifacts.tar.gz',
+ 'lfs.tar.gz',
+ 'pages.tar.gz',
+ 'registry.tar.gz',
+ 'repositories',
+ 'tmp'
+ )
+ end
+
+ it 'those component files can be restored from' do
+ expect { run_rake_task("gitlab:backup:create") }.to output.to_stdout
+
+ allow(Rake::Task['gitlab:shell:setup'])
+ .to receive(:invoke).and_return(true)
+
+ expect(Rake::Task['gitlab:db:drop_tables']).to receive :invoke
+ expect(Rake::Task['gitlab:backup:db:restore']).to receive :invoke
+ expect(Rake::Task['gitlab:backup:repo:restore']).to receive :invoke
+ expect(Rake::Task['gitlab:backup:uploads:restore']).to receive :invoke
+ expect(Rake::Task['gitlab:backup:builds:restore']).to receive :invoke
+ expect(Rake::Task['gitlab:backup:artifacts:restore']).to receive :invoke
+ expect(Rake::Task['gitlab:backup:pages:restore']).to receive :invoke
+ expect(Rake::Task['gitlab:backup:lfs:restore']).to receive :invoke
+ expect(Rake::Task['gitlab:backup:registry:restore']).to receive :invoke
+ expect(Rake::Task['gitlab:shell:setup']).to receive :invoke
+ expect { run_rake_task("gitlab:backup:restore") }.to output.to_stdout
+ end
+ end
+
describe "Human Readable Backup Name" do
it 'name has human readable time' do
expect { run_rake_task('gitlab:backup:create') }.to output.to_stdout