Fail harder in the backup script

This change also shows the output of failed Git commands during the
backup.
This commit is contained in:
Jacob Vosmaer 2014-10-01 15:43:27 +02:00
parent 8b1da505e0
commit 02bf992f37
4 changed files with 23 additions and 6 deletions

View file

@ -10,6 +10,7 @@ v 7.4.0
- Support for backup uploads to remote storage
- Prevent notes polling when there are not notes
- API: filter project issues by milestone (Julien Bianchi)
- Fail harder in the backup script
v 7.3.2
- Fix creating new file via web editor

View file

@ -21,6 +21,7 @@ module Backup
system('pg_dump', config['database'], out: db_file_name)
end
report_success(success)
abort 'Backup failed' unless success
end
def restore
@ -37,6 +38,7 @@ module Backup
system('psql', config['database'], '-f', db_file_name)
end
report_success(success)
abort 'Restore failed' unless success
end
protected

View file

@ -23,6 +23,7 @@ module Backup
puts "done".green
else
puts "failed".red
abort 'Backup failed'
end
upload(tar_file)
@ -44,6 +45,7 @@ module Backup
puts "done".green
else
puts "failed".red
abort 'Backup failed'
end
end
@ -53,6 +55,7 @@ module Backup
puts "done".green
else
puts "failed".red
abort 'Backup failed'
end
end

View file

@ -15,10 +15,15 @@ module Backup
if project.empty_repo?
puts "[SKIPPED]".cyan
elsif system(*%W(git --git-dir=#{path_to_repo(project)} bundle create #{path_to_bundle(project)} --all), silent)
puts "[DONE]".green
else
puts "[FAILED]".red
output, status = Gitlab::Popen.popen(%W(git --git-dir=#{path_to_repo(project)} bundle create #{path_to_bundle(project)} --all))
if status.zero?
puts "[DONE]".green
else
puts "[FAILED]".red
puts output
abort 'Backup failed'
end
end
wiki = ProjectWiki.new(project)
@ -27,10 +32,14 @@ module Backup
print " * #{wiki.path_with_namespace} ... "
if wiki.empty?
puts " [SKIPPED]".cyan
elsif system(*%W(git --git-dir=#{path_to_repo(wiki)} bundle create #{path_to_bundle(wiki)} --all), silent)
puts " [DONE]".green
else
puts " [FAILED]".red
output, status = Gitlab::Popen.popen(%W(git --git-dir=#{path_to_repo(wiki)} bundle create #{path_to_bundle(wiki)} --all))
if status.zero?
puts " [DONE]".green
else
puts " [FAILED]".red
abort 'Backup failed'
end
end
end
end
@ -54,6 +63,7 @@ module Backup
puts "[DONE]".green
else
puts "[FAILED]".red
abort 'Restore failed'
end
wiki = ProjectWiki.new(project)
@ -64,6 +74,7 @@ module Backup
puts " [DONE]".green
else
puts " [FAILED]".red
abort 'Restore failed'
end
end
end