Commit 43f5df21a39e0b9b16738bbd9e4047507bbcc9ef
1 parent
c40c627a
Exists in
master
and in
4 other branches
gitlab rake tasks refactored
Showing
16 changed files
with
159 additions
and
127 deletions
Show diff stats
.gitignore
CHANGELOG
README.md
VERSION
doc/installation.md
... | ... | @@ -159,12 +159,11 @@ Permissions: |
159 | 159 | |
160 | 160 | #### Setup DB |
161 | 161 | |
162 | - sudo -u gitlab bundle exec rake db:setup RAILS_ENV=production | |
163 | - sudo -u gitlab bundle exec rake db:seed_fu RAILS_ENV=production | |
162 | + sudo -u gitlab bundle exec rake gitlab:app:setup RAILS_ENV=production | |
164 | 163 | |
165 | 164 | Checking status: |
166 | 165 | |
167 | - sudo -u gitlab bundle exec rake gitlab_status RAILS_ENV=production | |
166 | + sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production | |
168 | 167 | |
169 | 168 | |
170 | 169 | # OUTPUT EXAMPLE | ... | ... |
... | ... | @@ -0,0 +1,26 @@ |
1 | +namespace :dev do | |
2 | + desc "Prepare for development (run dev_user.sh first)" | |
3 | + task :repos => :environment do | |
4 | + key = `sudo -u gitlabdev -H cat /home/gitlabdev/.ssh/id_rsa.pub` | |
5 | + raise "\n *** Run ./lib/tasks/dev/user.sh first *** \n" if key.empty? | |
6 | + Key.create(:user_id => User.first, :key => key, :title => "gitlabdev") | |
7 | + | |
8 | + puts "\n *** Clone diaspora from github" | |
9 | + `sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/diaspora/diaspora.git /home/gitlabdev/diaspora"` | |
10 | + | |
11 | + puts "\n *** Push diaspora source to gitlab" | |
12 | + `sudo -u gitlabdev -H sh -c "cd /home/gitlabdev/diaspora; git remote add local git@localhost:diaspora.git; git push local master; git push local --tags; git checkout -b api origin/api; git push local api; git checkout -b heroku origin/heroku; git push local heroku"` | |
13 | + | |
14 | + puts "\n *** Clone rails from github" | |
15 | + `sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/rails/rails.git /home/gitlabdev/rails"` | |
16 | + | |
17 | + puts "\n *** Push rails source to gitlab" | |
18 | + `sudo -u gitlabdev -H sh -c "cd /home/gitlabdev/rails; git remote add local git@localhost:ruby_on_rails.git; git push local master; git push local --tags"` | |
19 | + | |
20 | + puts "\n *** Clone rubinius from github" | |
21 | + `sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/rubinius/rubinius.git /home/gitlabdev/rubinius"` | |
22 | + | |
23 | + puts "\n *** Push rubinius source to gitlab" | |
24 | + `sudo -u gitlabdev -H sh -c "cd /home/gitlabdev/rubinius; git remote add local git@localhost:rubinius.git; git push local master; git push local --tags"` | |
25 | + end | |
26 | +end | ... | ... |
lib/tasks/dev_repo.rake
... | ... | @@ -1,24 +0,0 @@ |
1 | -desc "Prepare for development" | |
2 | -task :dev_repo => :environment do | |
3 | -key = `sudo -u gitlabdev -H cat /home/gitlabdev/.ssh/id_rsa.pub` | |
4 | -raise "\n *** Run ./lib/tasks/dev_user.sh first *** \n" if key.empty? | |
5 | -Key.create(:user_id => User.first, :key => key, :title => "gitlabdev") | |
6 | - | |
7 | -puts "\n *** Clone diaspora from github" | |
8 | -`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/diaspora/diaspora.git /home/gitlabdev/diaspora"` | |
9 | - | |
10 | -puts "\n *** Push diaspora source to gitlab" | |
11 | -`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev/diaspora; git remote add local git@localhost:diaspora.git; git push local master; git push local --tags; git checkout -b api origin/api; git push local api; git checkout -b heroku origin/heroku; git push local heroku"` | |
12 | - | |
13 | -puts "\n *** Clone rails from github" | |
14 | -`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/rails/rails.git /home/gitlabdev/rails"` | |
15 | - | |
16 | -puts "\n *** Push rails source to gitlab" | |
17 | -`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev/rails; git remote add local git@localhost:ruby_on_rails.git; git push local master; git push local --tags"` | |
18 | - | |
19 | -puts "\n *** Clone rubinius from github" | |
20 | -`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/rubinius/rubinius.git /home/gitlabdev/rubinius"` | |
21 | - | |
22 | -puts "\n *** Push rubinius source to gitlab" | |
23 | -`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev/rubinius; git remote add local git@localhost:rubinius.git; git push local master; git push local --tags"` | |
24 | -end |
lib/tasks/dev_user.sh
... | ... | @@ -0,0 +1,25 @@ |
1 | +namespace :gitlab do | |
2 | + namespace :gitolite do | |
3 | + desc "GITLAB | Rebuild each project at gitolite config" | |
4 | + task :update_repos => :environment do | |
5 | + puts "Starting Projects" | |
6 | + Project.find_each(:batch_size => 100) do |project| | |
7 | + puts | |
8 | + puts "=== #{project.name}" | |
9 | + project.update_repository | |
10 | + puts | |
11 | + end | |
12 | + puts "Done with projects" | |
13 | + end | |
14 | + | |
15 | + desc "GITLAB | Rebuild each key at gitolite config" | |
16 | + task :update_keys => :environment do | |
17 | + puts "Starting Key" | |
18 | + Key.find_each(:batch_size => 100) do |key| | |
19 | + key.update_repository | |
20 | + print '.' | |
21 | + end | |
22 | + puts "Done with keys" | |
23 | + end | |
24 | + end | |
25 | +end | ... | ... |
... | ... | @@ -0,0 +1,62 @@ |
1 | +namespace :gitlab do | |
2 | + namespace :app do | |
3 | + desc "GITLAB | Check gitlab installation status" | |
4 | + task :status => :environment do | |
5 | + puts "Starting diagnostic" | |
6 | + | |
7 | + print "config/database.yml............" | |
8 | + if File.exists?(File.join Rails.root, "config", "database.yml") | |
9 | + puts "exists".green | |
10 | + else | |
11 | + puts "missing".red | |
12 | + return | |
13 | + end | |
14 | + | |
15 | + print "config/gitlab.yml............" | |
16 | + if File.exists?(File.join Rails.root, "config", "gitlab.yml") | |
17 | + puts "exists".green | |
18 | + else | |
19 | + puts "missing".red | |
20 | + return | |
21 | + end | |
22 | + | |
23 | + GIT_HOST = YAML.load_file("#{Rails.root}/config/gitlab.yml")["git_host"] | |
24 | + print "/home/git/repositories/............" | |
25 | + if File.exists?(GIT_HOST['base_path']) | |
26 | + puts "exists".green | |
27 | + else | |
28 | + puts "missing".red | |
29 | + return | |
30 | + end | |
31 | + | |
32 | + print "/home/git/repositories/ is writable?............" | |
33 | + if File.stat(GIT_HOST['base_path']).writable? | |
34 | + puts "YES".green | |
35 | + else | |
36 | + puts "NO".red | |
37 | + return | |
38 | + end | |
39 | + | |
40 | + begin | |
41 | + `git clone #{GIT_HOST["admin_uri"]} /tmp/gitolite_gitlab_test` | |
42 | + FileUtils.rm_rf("/tmp/gitolite_gitlab_test") | |
43 | + print "Can clone gitolite-admin?............" | |
44 | + puts "YES".green | |
45 | + rescue | |
46 | + print "Can clone gitolite-admin?............" | |
47 | + puts "NO".red | |
48 | + return | |
49 | + end | |
50 | + | |
51 | + print "UMASK for .gitolite.rc is 0007? ............" | |
52 | + unless open("#{GIT_HOST['base_path']}/../.gitolite.rc").grep(/REPO_UMASK = 0007/).empty? | |
53 | + puts "YES".green | |
54 | + else | |
55 | + puts "NO".red | |
56 | + return | |
57 | + end | |
58 | + | |
59 | + puts "\nFinished" | |
60 | + end | |
61 | + end | |
62 | +end | ... | ... |
... | ... | @@ -0,0 +1,19 @@ |
1 | +namespace :gitlab do | |
2 | + namespace :gitolite do | |
3 | + desc "GITLAB | Rewrite hooks for repos" | |
4 | + task :update_hooks => :environment do | |
5 | + puts "Starting Projects" | |
6 | + Project.find_each(:batch_size => 100) do |project| | |
7 | + begin | |
8 | + if project.commit | |
9 | + project.write_hooks | |
10 | + print ".".green | |
11 | + end | |
12 | + rescue Exception => e | |
13 | + print e.message.red | |
14 | + end | |
15 | + end | |
16 | + puts "\nDone with projects" | |
17 | + end | |
18 | + end | |
19 | +end | ... | ... |
lib/tasks/gitlab_status.rake
... | ... | @@ -1,58 +0,0 @@ |
1 | -desc "Check gitlab installation status" | |
2 | -task :gitlab_status => :environment do | |
3 | - puts "Starting diagnostic" | |
4 | - | |
5 | - print "config/database.yml............" | |
6 | - if File.exists?(File.join Rails.root, "config", "database.yml") | |
7 | - puts "exists".green | |
8 | - else | |
9 | - puts "missing".red | |
10 | - return | |
11 | - end | |
12 | - | |
13 | - print "config/gitlab.yml............" | |
14 | - if File.exists?(File.join Rails.root, "config", "gitlab.yml") | |
15 | - puts "exists".green | |
16 | - else | |
17 | - puts "missing".red | |
18 | - return | |
19 | - end | |
20 | - | |
21 | - GIT_HOST = YAML.load_file("#{Rails.root}/config/gitlab.yml")["git_host"] | |
22 | - print "/home/git/repositories/............" | |
23 | - if File.exists?(GIT_HOST['base_path']) | |
24 | - puts "exists".green | |
25 | - else | |
26 | - puts "missing".red | |
27 | - return | |
28 | - end | |
29 | - | |
30 | - print "/home/git/repositories/ is writable?............" | |
31 | - if File.stat(GIT_HOST['base_path']).writable? | |
32 | - puts "YES".green | |
33 | - else | |
34 | - puts "NO".red | |
35 | - return | |
36 | - end | |
37 | - | |
38 | - begin | |
39 | - `git clone #{GIT_HOST["admin_uri"]} /tmp/gitolite_gitlab_test` | |
40 | - FileUtils.rm_rf("/tmp/gitolite_gitlab_test") | |
41 | - print "Can clone gitolite-admin?............" | |
42 | - puts "YES".green | |
43 | - rescue | |
44 | - print "Can clone gitolite-admin?............" | |
45 | - puts "NO".red | |
46 | - return | |
47 | - end | |
48 | - | |
49 | - print "UMASK for .gitolite.rc is 0007? ............" | |
50 | - unless open("#{GIT_HOST['base_path']}/../.gitolite.rc").grep(/REPO_UMASK = 0007/).empty? | |
51 | - puts "YES".green | |
52 | - else | |
53 | - puts "NO".red | |
54 | - return | |
55 | - end | |
56 | - | |
57 | - puts "\nFinished" | |
58 | -end |
lib/tasks/gitolite_rebuild.rake
... | ... | @@ -1,18 +0,0 @@ |
1 | -desc "Rebuild each project at gitolite config" | |
2 | -task :gitolite_rebuild => :environment do | |
3 | - puts "Starting Projects" | |
4 | - Project.find_each(:batch_size => 100) do |project| | |
5 | - puts | |
6 | - puts "=== #{project.name}" | |
7 | - project.update_repository | |
8 | - puts | |
9 | - end | |
10 | - puts "Done with projects" | |
11 | - | |
12 | - puts "Starting Key" | |
13 | - Key.find_each(:batch_size => 100) do |project| | |
14 | - project.update_repository | |
15 | - print '.' | |
16 | - end | |
17 | - puts "Done with keys" | |
18 | -end |
lib/tasks/update_hooks.rake
... | ... | @@ -1,15 +0,0 @@ |
1 | -desc "Rewrite hooks for repos" | |
2 | -task :update_hooks => :environment do | |
3 | - puts "Starting Projects" | |
4 | - Project.find_each(:batch_size => 100) do |project| | |
5 | - begin | |
6 | - if project.commit | |
7 | - project.write_hooks | |
8 | - print ".".green | |
9 | - end | |
10 | - rescue Exception => e | |
11 | - print e.message.red | |
12 | - end | |
13 | - end | |
14 | - puts "\nDone with projects" | |
15 | -end |