capistrano/lib/capistrano/tasks/hg.rake

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