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/gitlab.yml
|
||||||
config/database.yml
|
config/database.yml
|
||||||
config/initializers/omniauth.rb
|
config/initializers/omniauth.rb
|
||||||
|
config/unicorn.rb
|
||||||
db/data.yml
|
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
|
v 2.3.0
|
||||||
- Dashboard r1
|
- Dashboard r1
|
||||||
- Search r1
|
- Search r1
|
||||||
|
|
|
@ -12,7 +12,7 @@ GitLab is a free project and repository management application
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
* Ubuntu/Debian
|
* Ubuntu/Debian
|
||||||
* ruby 1.9.2
|
* ruby 1.9.2+
|
||||||
* mysql or sqlite
|
* mysql or sqlite
|
||||||
* git
|
* git
|
||||||
* gitolite
|
* gitolite
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
2.3.0
|
2.4.0pre
|
||||||
|
|
|
@ -159,12 +159,11 @@ Permissions:
|
||||||
|
|
||||||
#### Setup DB
|
#### Setup DB
|
||||||
|
|
||||||
sudo -u gitlab bundle exec rake db:setup RAILS_ENV=production
|
sudo -u gitlab bundle exec rake gitlab:app:setup RAILS_ENV=production
|
||||||
sudo -u gitlab bundle exec rake db:seed_fu RAILS_ENV=production
|
|
||||||
|
|
||||||
Checking status:
|
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
|
# 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