53 lines
1.1 KiB
Ruby
53 lines
1.1 KiB
Ruby
namespace :hg do
|
|
def strategy
|
|
@strategy ||= Capistrano::Hg.new(self, fetch(:hg_strategy, Capistrano::Hg::DefaultStrategy))
|
|
end
|
|
|
|
desc "Check that the repo is reachable"
|
|
task :check do
|
|
on release_roles :all do
|
|
strategy.check
|
|
end
|
|
end
|
|
|
|
desc "Clone the repo to the cache"
|
|
task :clone do
|
|
on release_roles :all do
|
|
if strategy.test
|
|
info t(:mirror_exists, :at => repo_path)
|
|
else
|
|
within deploy_path do
|
|
strategy.clone
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
desc "Pull changes from the remote repo"
|
|
task :update => :'hg:clone' do
|
|
on release_roles :all do
|
|
within repo_path do
|
|
strategy.update
|
|
end
|
|
end
|
|
end
|
|
|
|
desc "Copy repo to releases"
|
|
task :create_release => :'hg:update' do
|
|
on release_roles :all do
|
|
within repo_path do
|
|
strategy.release
|
|
end
|
|
end
|
|
end
|
|
|
|
desc "Determine the revision that will be deployed"
|
|
task :set_current_revision do
|
|
on release_roles :all do
|
|
within repo_path do
|
|
set :current_revision, strategy.fetch_revision
|
|
end
|
|
end
|
|
end
|
|
end
|