namespace :gitlab do namespace :import_export do desc "GitLab | Show Import/Export version" task version: :environment do puts "Import/Export v#{Gitlab::ImportExport.version}" end desc "GitLab | Display exported DB structure" task data: :environment do puts YAML.load_file(Gitlab::ImportExport.config_file)['project_tree'].to_yaml(SortKeys: true) end desc 'GitLab | Bumps the Import/Export version in fixtures and project templates' task bump_version: :environment do archives = Dir['vendor/project_templates/*.tar.gz'] archives.push('spec/features/projects/import_export/test_project_export.tar.gz') archives.each do |archive| raise ArgumentError unless File.exist?(archive) Dir.mktmpdir do |tmp_dir| system("tar -zxf #{archive} -C #{tmp_dir} > /dev/null") File.write(File.join(tmp_dir, 'VERSION'), Gitlab::ImportExport.version, mode: 'w') system("tar -zcvf #{archive} -C #{tmp_dir} . > /dev/null") end end puts "Updated #{archives} to #{Gitlab::ImportExport.version}." end end end