require 'capistrano/chef'
require "capistrano/ext/multistage"
set :application, "test"
set :repository, 'ssh:/...................'
set :user, 'deployer'
#the below line is to avoid git clone on every deployment
set :deploy_via, :remote_cache
set :deploy_to, '/opt/mount1/test'
set :scm, :git
#line to avoid saving the files declared
set :copy_exclude, [".git", ".gitignore"]
set :scm_verbose, true
ssh_options[:paranoid] = false
default_run_options[:pty] = true
# set :scm, :git # You can set :scm explicitly or Capistrano will make an intelligent guess based on known version control directory names
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`
#before "deploy", "deploy:stop_app"
#after "deploy", "deploy:start_app"
after "deploy", "deploy:restart_app"
namespace :deploy do
task :update_code, :roles => :web, :except => { :no_release => true } do
on_rollback { puts "some message?" }
strategy.deploy!
finalize_update
end
task :stop_app, :roles => :web do
run "sudo /etc/init.d/test stop", :shell => :bash
end
task :start_app, :roles => :web do
run "sudo /etc/init.d/test start", :shell => :bash
end
task :restart_app, :roles => :web do
run "sudo /etc/init.d/test restart", :shell => :bash
end
end