gitlab rake tasks refactored
This commit is contained in:
parent
c40c627a3b
commit
43f5df21a3
15 changed files with 152 additions and 120 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -17,4 +17,5 @@ Vagrantfile
|
|||
config/gitlab.yml
|
||||
config/database.yml
|
||||
config/initializers/omniauth.rb
|
||||
config/unicorn.rb
|
||||
db/data.yml
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
v 2.4.0
|
||||
- Accept merge request
|
||||
|
||||
v 2.3.1
|
||||
- Issues pagination
|
||||
- ssl fixes
|
||||
- Merge Request pagination
|
||||
|
||||
v 2.3.0
|
||||
- Dashboard r1
|
||||
- Search r1
|
||||
|
|
|
@ -12,7 +12,7 @@ GitLab is a free project and repository management application
|
|||
## Requirements
|
||||
|
||||
* Ubuntu/Debian
|
||||
* ruby 1.9.2
|
||||
* ruby 1.9.2+
|
||||
* mysql or sqlite
|
||||
* git
|
||||
* gitolite
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
2.3.0
|
||||
2.4.0pre
|
||||
|
|
|
@ -159,12 +159,11 @@ Permissions:
|
|||
|
||||
#### Setup DB
|
||||
|
||||
sudo -u gitlab bundle exec rake db:setup RAILS_ENV=production
|
||||
sudo -u gitlab bundle exec rake db:seed_fu RAILS_ENV=production
|
||||
sudo -u gitlab bundle exec rake gitlab:app:setup RAILS_ENV=production
|
||||
|
||||
Checking status:
|
||||
|
||||
sudo -u gitlab bundle exec rake gitlab_status RAILS_ENV=production
|
||||
sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production
|
||||
|
||||
|
||||
# OUTPUT EXAMPLE
|
||||
|
|
26
lib/tasks/dev/repo.rake
Normal file
26
lib/tasks/dev/repo.rake
Normal file
|
@ -0,0 +1,26 @@
|
|||
namespace :dev do
|
||||
desc "Prepare for development (run dev_user.sh first)"
|
||||
task :repos => :environment do
|
||||
key = `sudo -u gitlabdev -H cat /home/gitlabdev/.ssh/id_rsa.pub`
|
||||
raise "\n *** Run ./lib/tasks/dev/user.sh first *** \n" if key.empty?
|
||||
Key.create(:user_id => User.first, :key => key, :title => "gitlabdev")
|
||||
|
||||
puts "\n *** Clone diaspora from github"
|
||||
`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/diaspora/diaspora.git /home/gitlabdev/diaspora"`
|
||||
|
||||
puts "\n *** Push diaspora source to gitlab"
|
||||
`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"`
|
||||
|
||||
puts "\n *** Clone rails from github"
|
||||
`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/rails/rails.git /home/gitlabdev/rails"`
|
||||
|
||||
puts "\n *** Push rails source to gitlab"
|
||||
`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"`
|
||||
|
||||
puts "\n *** Clone rubinius from github"
|
||||
`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/rubinius/rubinius.git /home/gitlabdev/rubinius"`
|
||||
|
||||
puts "\n *** Push rubinius source to gitlab"
|
||||
`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"`
|
||||
end
|
||||
end
|
|
@ -1,24 +0,0 @@
|
|||
desc "Prepare for development"
|
||||
task :dev_repo => :environment do
|
||||
key = `sudo -u gitlabdev -H cat /home/gitlabdev/.ssh/id_rsa.pub`
|
||||
raise "\n *** Run ./lib/tasks/dev_user.sh first *** \n" if key.empty?
|
||||
Key.create(:user_id => User.first, :key => key, :title => "gitlabdev")
|
||||
|
||||
puts "\n *** Clone diaspora from github"
|
||||
`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/diaspora/diaspora.git /home/gitlabdev/diaspora"`
|
||||
|
||||
puts "\n *** Push diaspora source to gitlab"
|
||||
`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"`
|
||||
|
||||
puts "\n *** Clone rails from github"
|
||||
`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/rails/rails.git /home/gitlabdev/rails"`
|
||||
|
||||
puts "\n *** Push rails source to gitlab"
|
||||
`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"`
|
||||
|
||||
puts "\n *** Clone rubinius from github"
|
||||
`sudo -u gitlabdev -H sh -c "cd /home/gitlabdev; git clone git://github.com/rubinius/rubinius.git /home/gitlabdev/rubinius"`
|
||||
|
||||
puts "\n *** Push rubinius source to gitlab"
|
||||
`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"`
|
||||
end
|
25
lib/tasks/gitlab/gitolite_rebuild.rake
Normal file
25
lib/tasks/gitlab/gitolite_rebuild.rake
Normal file
|
@ -0,0 +1,25 @@
|
|||
namespace :gitlab do
|
||||
namespace :gitolite do
|
||||
desc "GITLAB | Rebuild each project at gitolite config"
|
||||
task :update_repos => :environment do
|
||||
puts "Starting Projects"
|
||||
Project.find_each(:batch_size => 100) do |project|
|
||||
puts
|
||||
puts "=== #{project.name}"
|
||||
project.update_repository
|
||||
puts
|
||||
end
|
||||
puts "Done with projects"
|
||||
end
|
||||
|
||||
desc "GITLAB | Rebuild each key at gitolite config"
|
||||
task :update_keys => :environment do
|
||||
puts "Starting Key"
|
||||
Key.find_each(:batch_size => 100) do |key|
|
||||
key.update_repository
|
||||
print '.'
|
||||
end
|
||||
puts "Done with keys"
|
||||
end
|
||||
end
|
||||
end
|
7
lib/tasks/gitlab/setup.rake
Normal file
7
lib/tasks/gitlab/setup.rake
Normal file
|
@ -0,0 +1,7 @@
|
|||
namespace :gitlab do
|
||||
namespace :app do
|
||||
desc "GITLAB | Setup production application"
|
||||
task :setup => ['db:setup', 'db:seed_fu']
|
||||
end
|
||||
end
|
||||
|
62
lib/tasks/gitlab/status.rake
Normal file
62
lib/tasks/gitlab/status.rake
Normal file
|
@ -0,0 +1,62 @@
|
|||
namespace :gitlab do
|
||||
namespace :app do
|
||||
desc "GITLAB | Check gitlab installation status"
|
||||
task :status => :environment do
|
||||
puts "Starting diagnostic"
|
||||
|
||||
print "config/database.yml............"
|
||||
if File.exists?(File.join Rails.root, "config", "database.yml")
|
||||
puts "exists".green
|
||||
else
|
||||
puts "missing".red
|
||||
return
|
||||
end
|
||||
|
||||
print "config/gitlab.yml............"
|
||||
if File.exists?(File.join Rails.root, "config", "gitlab.yml")
|
||||
puts "exists".green
|
||||
else
|
||||
puts "missing".red
|
||||
return
|
||||
end
|
||||
|
||||
GIT_HOST = YAML.load_file("#{Rails.root}/config/gitlab.yml")["git_host"]
|
||||
print "/home/git/repositories/............"
|
||||
if File.exists?(GIT_HOST['base_path'])
|
||||
puts "exists".green
|
||||
else
|
||||
puts "missing".red
|
||||
return
|
||||
end
|
||||
|
||||
print "/home/git/repositories/ is writable?............"
|
||||
if File.stat(GIT_HOST['base_path']).writable?
|
||||
puts "YES".green
|
||||
else
|
||||
puts "NO".red
|
||||
return
|
||||
end
|
||||
|
||||
begin
|
||||
`git clone #{GIT_HOST["admin_uri"]} /tmp/gitolite_gitlab_test`
|
||||
FileUtils.rm_rf("/tmp/gitolite_gitlab_test")
|
||||
print "Can clone gitolite-admin?............"
|
||||
puts "YES".green
|
||||
rescue
|
||||
print "Can clone gitolite-admin?............"
|
||||
puts "NO".red
|
||||
return
|
||||
end
|
||||
|
||||
print "UMASK for .gitolite.rc is 0007? ............"
|
||||
unless open("#{GIT_HOST['base_path']}/../.gitolite.rc").grep(/REPO_UMASK = 0007/).empty?
|
||||
puts "YES".green
|
||||
else
|
||||
puts "NO".red
|
||||
return
|
||||
end
|
||||
|
||||
puts "\nFinished"
|
||||
end
|
||||
end
|
||||
end
|
19
lib/tasks/gitlab/update_hooks.rake
Normal file
19
lib/tasks/gitlab/update_hooks.rake
Normal file
|
@ -0,0 +1,19 @@
|
|||
namespace :gitlab do
|
||||
namespace :gitolite do
|
||||
desc "GITLAB | Rewrite hooks for repos"
|
||||
task :update_hooks => :environment do
|
||||
puts "Starting Projects"
|
||||
Project.find_each(:batch_size => 100) do |project|
|
||||
begin
|
||||
if project.commit
|
||||
project.write_hooks
|
||||
print ".".green
|
||||
end
|
||||
rescue Exception => e
|
||||
print e.message.red
|
||||
end
|
||||
end
|
||||
puts "\nDone with projects"
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,58 +0,0 @@
|
|||
desc "Check gitlab installation status"
|
||||
task :gitlab_status => :environment do
|
||||
puts "Starting diagnostic"
|
||||
|
||||
print "config/database.yml............"
|
||||
if File.exists?(File.join Rails.root, "config", "database.yml")
|
||||
puts "exists".green
|
||||
else
|
||||
puts "missing".red
|
||||
return
|
||||
end
|
||||
|
||||
print "config/gitlab.yml............"
|
||||
if File.exists?(File.join Rails.root, "config", "gitlab.yml")
|
||||
puts "exists".green
|
||||
else
|
||||
puts "missing".red
|
||||
return
|
||||
end
|
||||
|
||||
GIT_HOST = YAML.load_file("#{Rails.root}/config/gitlab.yml")["git_host"]
|
||||
print "/home/git/repositories/............"
|
||||
if File.exists?(GIT_HOST['base_path'])
|
||||
puts "exists".green
|
||||
else
|
||||
puts "missing".red
|
||||
return
|
||||
end
|
||||
|
||||
print "/home/git/repositories/ is writable?............"
|
||||
if File.stat(GIT_HOST['base_path']).writable?
|
||||
puts "YES".green
|
||||
else
|
||||
puts "NO".red
|
||||
return
|
||||
end
|
||||
|
||||
begin
|
||||
`git clone #{GIT_HOST["admin_uri"]} /tmp/gitolite_gitlab_test`
|
||||
FileUtils.rm_rf("/tmp/gitolite_gitlab_test")
|
||||
print "Can clone gitolite-admin?............"
|
||||
puts "YES".green
|
||||
rescue
|
||||
print "Can clone gitolite-admin?............"
|
||||
puts "NO".red
|
||||
return
|
||||
end
|
||||
|
||||
print "UMASK for .gitolite.rc is 0007? ............"
|
||||
unless open("#{GIT_HOST['base_path']}/../.gitolite.rc").grep(/REPO_UMASK = 0007/).empty?
|
||||
puts "YES".green
|
||||
else
|
||||
puts "NO".red
|
||||
return
|
||||
end
|
||||
|
||||
puts "\nFinished"
|
||||
end
|
|
@ -1,18 +0,0 @@
|
|||
desc "Rebuild each project at gitolite config"
|
||||
task :gitolite_rebuild => :environment do
|
||||
puts "Starting Projects"
|
||||
Project.find_each(:batch_size => 100) do |project|
|
||||
puts
|
||||
puts "=== #{project.name}"
|
||||
project.update_repository
|
||||
puts
|
||||
end
|
||||
puts "Done with projects"
|
||||
|
||||
puts "Starting Key"
|
||||
Key.find_each(:batch_size => 100) do |project|
|
||||
project.update_repository
|
||||
print '.'
|
||||
end
|
||||
puts "Done with keys"
|
||||
end
|
|
@ -1,15 +0,0 @@
|
|||
desc "Rewrite hooks for repos"
|
||||
task :update_hooks => :environment do
|
||||
puts "Starting Projects"
|
||||
Project.find_each(:batch_size => 100) do |project|
|
||||
begin
|
||||
if project.commit
|
||||
project.write_hooks
|
||||
print ".".green
|
||||
end
|
||||
rescue Exception => e
|
||||
print e.message.red
|
||||
end
|
||||
end
|
||||
puts "\nDone with projects"
|
||||
end
|
Loading…
Reference in a new issue