Unverified Commit 39f80884 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Improve developer seeds



Return execution of observers in seeds.
Mute email sending to letter opening in you browser.
Added `rake dev` task to reset db and add seeds.
Signed-off-by: default avatarDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
parent 6e73b208
......@@ -8,8 +8,7 @@
password_confirmation: "5iveL!fe",
admin: true,
projects_limit: 100,
theme_id: Gitlab::Theme::MARS
theme_id: Gitlab::Theme::MARS,
confirmed_at: DateTime.now
}
])
User.find(1).confirm!
project_urls = [
'https://github.com/documentcloud/underscore.git',
'https://github.com/diaspora/diaspora.git',
'https://github.com/diaspora/diaspora-project-site.git',
'https://github.com/diaspora/diaspora-client.git',
'https://github.com/brightbox/brightbox-cli.git',
'https://github.com/brightbox/puppet.git',
'https://github.com/gitlabhq/gitlabhq.git',
'https://github.com/gitlabhq/gitlab-ci.git',
'https://github.com/gitlabhq/gitlab-recipes.git',
'https://github.com/gitlabhq/gitlab-shell.git',
'https://github.com/gitlabhq/grack.git',
'https://github.com/gitlabhq/testme.git',
'https://github.com/twitter/flight.git',
'https://github.com/twitter/typeahead.js.git',
'https://github.com/h5bp/html5-boilerplate.git',
'https://github.com/h5bp/mobile-boilerplate.git',
]
project_urls.each_with_index do |url, i|
group_path, project_path = url.split('/')[-2..-1]
group = Group.find_by(path: group_path)
unless group
group = Group.new(
name: group_path.titleize,
path: group_path
)
group.description = Faker::Lorem.sentence
group.save
group.add_owner(User.first)
end
project_path.gsub!(".git", "")
params = {
import_url: url,
namespace_id: group.id,
name: project_path.titleize,
description: Faker::Lorem.sentence
}
project = Projects::CreateService.new(User.first, params).execute
if project.valid?
print '.'
else
puts project.errors.full_messages
print 'F'
Gitlab::Seeder.quiet do
project_urls = [
'https://github.com/documentcloud/underscore.git',
'https://github.com/diaspora/diaspora.git',
'https://github.com/diaspora/diaspora-project-site.git',
'https://github.com/diaspora/diaspora-client.git',
'https://github.com/brightbox/brightbox-cli.git',
'https://github.com/brightbox/puppet.git',
'https://github.com/gitlabhq/gitlabhq.git',
'https://github.com/gitlabhq/gitlab-ci.git',
'https://github.com/gitlabhq/gitlab-recipes.git',
'https://github.com/gitlabhq/gitlab-shell.git',
'https://github.com/gitlabhq/grack.git',
'https://github.com/gitlabhq/testme.git',
'https://github.com/twitter/flight.git',
'https://github.com/twitter/typeahead.js.git',
'https://github.com/h5bp/html5-boilerplate.git',
'https://github.com/h5bp/mobile-boilerplate.git',
]
project_urls.each_with_index do |url, i|
group_path, project_path = url.split('/')[-2..-1]
group = Group.find_by(path: group_path)
unless group
group = Group.new(
name: group_path.titleize,
path: group_path
)
group.description = Faker::Lorem.sentence
group.save
group.add_owner(User.first)
end
project_path.gsub!(".git", "")
params = {
import_url: url,
namespace_id: group.id,
name: project_path.titleize,
description: Faker::Lorem.sentence
}
project = Projects::CreateService.new(User.first, params).execute
if project.valid?
print '.'
else
puts project.errors.full_messages
print 'F'
end
end
end
......@@ -6,6 +6,7 @@
username: Faker::Internet.user_name,
name: Faker::Name.name,
email: Faker::Internet.email,
confirmed_at: DateTime.now
}])
print '.'
rescue ActiveRecord::RecordNotSaved
......
ActiveRecord::Base.observers.disable :all
Gitlab::Seeder.quiet do
Group.all.each do |group|
User.all.sample(4).each do |user|
......
ActiveRecord::Base.observers.disable :all
Gitlab::Seeder.quiet do
(1..300).each do |i|
# Random Project
......@@ -12,9 +10,7 @@
user_id = user.id
begin
Thread.current[:current_user] = user
Gitlab::Seeder.by_user(user) do
Issue.seed(:id, [{
id: i,
project_id: project.id,
......@@ -25,8 +21,6 @@
title: Faker::Lorem.sentence(6),
description: Faker::Lorem.sentence
}])
ensure
Thread.current[:current_user] = nil
end
print('.')
end
......
ActiveRecord::Base.observers.disable :all
Gitlab::Seeder.quiet do
(1..100).each do |i|
# Random Project
......@@ -17,9 +15,8 @@
next if branches.uniq.size < 2
user_id = user.id
begin
Thread.current[:current_user] = user
Gitlab::Seeder.by_user(user) do
MergeRequest.seed(:id, [{
id: i,
source_branch: branches.first,
......@@ -31,8 +28,6 @@
milestone: project.milestones.sample,
title: Faker::Lorem.sentence(6)
}])
ensure
Thread.current[:current_user] = nil
end
print('.')
end
......
ActiveRecord::Base.observers.enable :all
Gitlab::Seeder.quiet do
User.first(30).each_with_index do |user, i|
Key.seed(:id, [
......
ActiveRecord::Base.observers.disable :all
Gitlab::Seeder.quiet do
contents = [
`curl https://gist.github.com/randx/4275756/raw/da2f262920c96d1a970d48bf2e99147954b1f4bd/glus1204.sh`,
......
ActiveRecord::Base.observers.disable :all
Gitlab::Seeder.quiet do
Issue.all.limit(10).each_with_index do |issue, i|
5.times do
user = issue.project.team.users.sample
Issue.all.limit(10).each_with_index do |issue, i|
5.times do
Note.seed(:id, [{
project_id: issue.project.id,
author_id: issue.project.team.users.sample.id,
note: Faker::Lorem.sentence,
noteable_id: issue.id,
noteable_type: 'Issue'
}])
Gitlab::Seeder.by_user(user) do
Note.seed(:id, [{
project_id: issue.project.id,
author_id: user.id,
note: Faker::Lorem.sentence,
noteable_id: issue.id,
noteable_type: 'Issue'
}])
print '.'
end
end
end
end
module Gitlab
class Seeder
def self.quiet
mute_mailer
SeedFu.quiet = true
yield
SeedFu.quiet = false
puts "\nOK".green
end
def self.by_user(user)
begin
Thread.current[:current_user] = user
yield
ensure
Thread.current[:current_user] = nil
end
end
def self.mute_mailer
code = <<-eos
def Notify.delay
self
end
eos
eval(code)
end
end
end
task dev: ["dev:setup"]
namespace :dev do
desc "GITLAB | Setup developer environment (db, fixtures)"
task :setup => :environment do
ENV['force'] = 'yes'
Rake::Task["db:setup"].invoke
Rake::Task["db:seed_fu"].invoke
Rake::Task["gitlab:setup"].invoke
Rake::Task["gitlab:shell:setup"].invoke
end
end
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment