Merge pull request #3047 from mikew/capistrano-deploy-example

Capistrano deploy example
This commit is contained in:
Dmitriy Zaporozhets 2013-03-07 02:08:11 -08:00
commit 9c2a6e2013
3 changed files with 82 additions and 4 deletions

4
Capfile.example Normal file
View file

@ -0,0 +1,4 @@
load 'deploy'
load 'deploy/assets'
require 'bundler/capistrano'
load 'config/deploy'

72
config/deploy.rb.example Normal file
View file

@ -0,0 +1,72 @@
set :domain, 'set application domain here'
set :db_adapter, 'mysql' # or postgres
set :mount_point, '/'
set :application, 'gitlabhq'
set :user, 'git'
set :rails_env, 'production'
set :deploy_to, "/home/#{user}/apps/#{application}"
set :bundle_without, %w[development test] + (%w[mysql postgres] - [db_adapter])
set :asset_env, "RAILS_GROUPS=assets RAILS_RELATIVE_URL_ROOT=#{mount_point.sub /\/+\Z/, ''}"
set :use_sudo, false
default_run_options[:pty] = true
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`
set :scm, :git
set :repository, "git@#{domain}:#{application}.git"
set :deploy_via, :remote_cache
# Alternatively, you can deploy via copy, if you don't have gitlab in git
#set :scm, :none
#set :repository, '.'
#set :deploy_via, :copy
server domain, :app, :web, :db, primary: true
namespace :foreman do
desc 'Export the Procfile to Ubuntu upstart scripts'
task :export, roles: :app do
foreman_export = "foreman export upstart /etc/init -f Procfile -a #{application} -u #{user} -l #{shared_path}/log/foreman"
run "cd #{release_path} && #{sudo} #{fetch :bundle_cmd, 'bundle'} exec #{foreman_export}"
end
desc 'Start the application services'
task :start, roles: :app do
run "#{sudo} service #{application} start"
end
desc 'Stop the application services'
task :stop, roles: :app do
run "#{sudo} service #{application} stop"
end
desc 'Restart the application services'
task :restart, roles: :app do
run "#{sudo} service #{application} restart"
end
end
namespace :deploy do
desc 'Start the application services'
task :start, roles: :app do
foreman.start
end
desc 'Stop the application services'
task :stop, roles: :app do
foreman.stop
end
desc 'Restart the application services'
task :restart, roles: :app do
foreman.restart
end
end
after 'deploy:cold' do
run "cd #{release_path} && #{rake} gitlab:setup force=yes RAILS_ENV=#{rails_env}"
deploy.restart
end
after 'deploy:update', 'foreman:export' # Export foreman scripts
#after 'deploy:update', 'foreman:restart' # Restart application scripts

View file

@ -7,10 +7,12 @@ namespace :gitlab do
def setup_db def setup_db
warn_user_is_not_gitlab warn_user_is_not_gitlab
unless ENV['force'] == 'yes'
puts "This will create the necessary database tables and seed the database." puts "This will create the necessary database tables and seed the database."
puts "You will lose any previous data stored in the database." puts "You will lose any previous data stored in the database."
ask_to_continue ask_to_continue
puts "" puts ""
end
Rake::Task["db:setup"].invoke Rake::Task["db:setup"].invoke
Rake::Task["db:seed_fu"].invoke Rake::Task["db:seed_fu"].invoke