Newer
Older
# Copyright (c) 2010-2011, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
Raphael
a validé
set :config_yaml, YAML.load_file(File.dirname(__FILE__) + '/deploy_config.yml')
Raphael
a validé
require 'bundler/capistrano'
set :bundle_dir, ''
Raphael
a validé
set :stages, ['production', 'staging']
set :default_stage, 'staging'
require 'capistrano/ext/multistage'
Raphael
a validé
set :application, 'diaspora'
set :scm_verbose, true
set :repository_cache, "remote_cache"
set :deploy_via, :checkout
# Bonus! Colors are pretty!
def red(str)
"\e[31m#{str}\e[0m"
end
# Figure out the name of the current local branch
def current_git_branch
branch = `git symbolic-ref HEAD 2> /dev/null`.strip.gsub(/^refs\/heads\//, '')
puts "Deploying branch #{red branch}"
branch
end
# Set the deploy branch to the current branch
set :branch, current_git_branch
task :symlink_config_files do
run "ln -s -f #{shared_path}/config/database.yml #{current_path}/config/database.yml"
run "ln -s -f #{shared_path}/config/application.yml #{current_path}/config/application.yml"
run "ln -s -f #{shared_path}/config/oauth_keys.yml #{current_path}/config/oauth_keys.yml"
task :symlink_cookie_secret do
run "ln -s -f #{shared_path}/config/initializers/secret_token.rb #{current_path}/config/initializers/secret_token.rb"
task :bundle_static_assets do
run "cd #{current_path} && sass --update public/stylesheets/sass:public/stylesheets"
run "cd #{current_path} && bundle exec jammit"
thins = capture "svstat /service/thin*"
matches = thins.match(/(thin_\d+):/).captures
Raphael
a validé
matches.each_with_index do |thin, index|
unless index == 0
Raphael Sofaer
a validé
puts "sleeping for 20 seconds"
sleep(20)
Raphael
a validé
end
run "svc -t /service/#{thin}"
end
run "svc -t /service/resque_worker*"
end
task :kill do
run "svc -k /service/thin*"
run "svc -k /service/resque_worker*"
Raphael
a validé
run "svc -u /service/thin*"
run "svc -u /service/resque_worker*"
Raphael
a validé
run "svc -d /service/thin*"
run "svc -d /service/resque_worker*"
Raphael
a validé
after "deploy:symlink", "deploy:symlink_config_files", "deploy:symlink_cookie_secret", "deploy:bundle_static_assets"
require './config/boot'
require 'hoptoad_notifier/capistrano'