summaryrefslogtreecommitdiff
path: root/lib/tasks/gitlab/import_export.rake
blob: 900dbf7be2421f84a9429444270fcc3f3363bfe2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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