d33fc982f5
This seed downloads 2.1 GB worth of repositories. Google can afford the bandwidth, but if a person using the GDK is on a metered connection, that's not so great. Also the GDK test suite runs this seed, so every CI run for that project had to download those as well. Needlessly wasteful.
75 lines
2.4 KiB
Ruby
75 lines
2.4 KiB
Ruby
require './spec/support/sidekiq'
|
|
|
|
def create_group_with_parents(user, full_path)
|
|
parent_path = nil
|
|
group = nil
|
|
|
|
until full_path.blank?
|
|
path, _, full_path = full_path.partition('/')
|
|
|
|
if parent_path
|
|
parent = Group.find_by_full_path(parent_path)
|
|
|
|
parent_path += '/'
|
|
parent_path += path
|
|
|
|
group = Groups::CreateService.new(user, path: path, parent_id: parent.id).execute
|
|
else
|
|
parent_path = path
|
|
|
|
group = Group.find_by_full_path(parent_path) ||
|
|
Groups::CreateService.new(user, path: path).execute
|
|
end
|
|
end
|
|
|
|
group
|
|
end
|
|
|
|
Sidekiq::Testing.inline! do
|
|
Gitlab::Seeder.quiet do
|
|
flag = 'SEED_NESTED_GROUPS'
|
|
|
|
if ENV[flag]
|
|
project_urls = [
|
|
'https://android.googlesource.com/platform/hardware/broadcom/libbt.git',
|
|
'https://android.googlesource.com/platform/hardware/broadcom/wlan.git',
|
|
'https://android.googlesource.com/platform/hardware/bsp/bootloader/intel/edison-u-boot.git',
|
|
'https://android.googlesource.com/platform/hardware/bsp/broadcom.git',
|
|
'https://android.googlesource.com/platform/hardware/bsp/freescale.git',
|
|
'https://android.googlesource.com/platform/hardware/bsp/imagination.git',
|
|
'https://android.googlesource.com/platform/hardware/bsp/intel.git',
|
|
'https://android.googlesource.com/platform/hardware/bsp/kernel/common/v4.1.git',
|
|
'https://android.googlesource.com/platform/hardware/bsp/kernel/common/v4.4.git'
|
|
]
|
|
|
|
user = User.admins.first
|
|
|
|
project_urls.each_with_index do |url, i|
|
|
full_path = url.sub('https://android.googlesource.com/', '')
|
|
full_path = full_path.sub(/\.git\z/, '')
|
|
full_path, _, project_path = full_path.rpartition('/')
|
|
group = Group.find_by_full_path(full_path) || create_group_with_parents(user, full_path)
|
|
|
|
params = {
|
|
import_url: url,
|
|
namespace_id: group.id,
|
|
path: project_path,
|
|
name: project_path,
|
|
description: FFaker::Lorem.sentence,
|
|
visibility_level: Gitlab::VisibilityLevel.values.sample
|
|
}
|
|
|
|
project = Projects::CreateService.new(user, params).execute
|
|
project.send(:_run_after_commit_queue)
|
|
|
|
if project.valid?
|
|
print '.'
|
|
else
|
|
print 'F'
|
|
end
|
|
end
|
|
else
|
|
puts "Skipped. Use the `#{flag}` environment variable to enable."
|
|
end
|
|
end
|
|
end
|