Sha256: 7ae5545344a90b9a426a78ca11f3950bc269974b53a4e13f93e3a28c890ea869
Contents?: true
Size: 1.99 KB
Versions: 1
Compression:
Stored size: 1.99 KB
Contents
require 'capistrano/git' namespace :git_local do def strategy @strategy ||= Capistrano::Git.new(self, fetch(:git_strategy, Capistrano::Git::DefaultStrategy)) end def test_remote remote = '' within repo_path do remote = capture(:git, 'remote', '-v').split("\n").select{ |i| i[/\(fetch\)$/] }[0].gsub(/^origin\s+(\S+)\s+\(fetch\)$/, '\1') end remote == repo_url end desc 'Check that the repository is reachable' task :check do |task| run_locally do debug "Task #{task} start" end fetch(:branch) run_locally do exit 1 unless strategy.check end run_locally do debug "Task #{task} finish" end end desc 'Clone the repo to the cache' task :clone do |task| run_locally do debug "Task #{task} start" end run_locally do if strategy.test && test_remote info t(:mirror_exists, at: repo_path) else within deploy_path do execute :rm, '-rf', repo_path if test :test, '-d', repo_path strategy.clone end end end run_locally do debug "Task #{task} finish" end end desc 'Update the repo mirror to reflect the origin state' task :update => :clone do |task| run_locally do debug "Task #{task} start" end run_locally do within repo_path do strategy.update end end run_locally do debug "Task #{task} finish" end end desc 'Copy repo to releases' task :create_release => :update do |task| run_locally do debug "Task #{task} start" end run_locally do within repo_path do execute :mkdir, '-p', release_path strategy.release end end run_locally do debug "Task #{task} finish" end end desc 'Determine the revision that will be deployed' task :set_current_revision do |task| run_locally do debug "Task #{task} start" end run_locally do within repo_path do set :current_revision, strategy.fetch_revision end end run_locally do debug "Task #{task} finish" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
capistrano-git-local-0.1.2 | lib/capistrano/git-local.rb |