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 |