Commit 9c2a6e20 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

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

Capistrano deploy example
parents a32f85ac 4243105e
load 'deploy'
load 'deploy/assets'
require 'bundler/capistrano'
load 'config/deploy'
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
...@@ -7,10 +7,12 @@ namespace :gitlab do ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment