Class: Capistrano::BundleRsync::SCM Abstract
- Defined in:
- lib/capistrano/bundle_rsync/scm.rb
Overview
Base class for SCM strategy providers.
Instance Method Summary collapse
-
#check ⇒ Boolean
abstract
Your implementation should check if the specified remote-repository is available.
-
#clean_release ⇒ Object
abstract
Clean the contents of the cache-repository onto the release path.
-
#clone ⇒ Object
abstract
Create a (new) clone of the remote-repository on the deployment target.
-
#create_release ⇒ Object
abstract
Copy the contents of the cache-repository onto the release path.
-
#rsync_release ⇒ Object
abstract
Rsync the contents of the release path.
-
#rsync_shared ⇒ Object
abstract
Rsync arbitrary contents to shared directory.
-
#set_current_revision ⇒ Object
abstract
Identify the SHA of the commit that will be deployed.
-
#test ⇒ Boolean
abstract
Your implementation should check the existence of a cache repository on the deployment target.
-
#update ⇒ Object
abstract
Update the clone on the deployment target.
Methods inherited from Base
Constructor Details
This class inherits a constructor from Capistrano::BundleRsync::Base
Instance Method Details
#check ⇒ Boolean
Your implementation should check if the specified remote-repository is available.
28 29 30 31 32 |
# File 'lib/capistrano/bundle_rsync/scm.rb', line 28 def check raise NotImplementedError.new( "Your SCM strategy module should provide a #check method" ) end |
#clean_release ⇒ Object
Clean the contents of the cache-repository onto the release path
76 77 78 79 80 |
# File 'lib/capistrano/bundle_rsync/scm.rb', line 76 def clean_release raise NotImplementedError.new( "Your SCM strategy module should provide a #clean_release method" ) end |
#clone ⇒ Object
Create a (new) clone of the remote-repository on the deployment target
40 41 42 43 44 |
# File 'lib/capistrano/bundle_rsync/scm.rb', line 40 def clone raise NotImplementedError.new( "Your SCM strategy module should provide a #clone method" ) end |
#create_release ⇒ Object
Copy the contents of the cache-repository onto the release path
64 65 66 67 68 |
# File 'lib/capistrano/bundle_rsync/scm.rb', line 64 def create_release raise NotImplementedError.new( "Your SCM strategy module should provide a #create_release method" ) end |
#rsync_release ⇒ Object
Rsync the contents of the release path
This is an additional task endpoint provided by capistrano-bundle_rsync
90 91 92 93 94 |
# File 'lib/capistrano/bundle_rsync/scm.rb', line 90 def rsync_release raise NotImplementedError.new( "Your SCM strategy module should provide a #rsync_release method" ) end |
#rsync_shared ⇒ Object
Rsync arbitrary contents to shared directory
This is an additional task endpoint provided by capistrano-bundle_rsync
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/capistrano/bundle_rsync/scm.rb', line 103 def rsync_shared hosts = ::Capistrano::Configuration.env.filter(release_roles(:all)) = config. if config_files = config.config_files Parallel.each(hosts, in_threads: config.max_parallels(hosts)) do |host| ssh = config.build_ssh_command(host) config_files.each do |config_file| basename = File.basename(config_file) execute :rsync, "#{} --rsh='#{ssh}' #{config_file} #{host}:#{release_path}/config/#{basename}" end end end if shared_dirs = config.shared_dirs Parallel.each(hosts, in_threads: config.max_parallels(hosts)) do |host| ssh = config.build_ssh_command(host) shared_dirs.each do |shared_dir| basename = File.basename(shared_dir) execute :rsync, "#{} --rsh='#{ssh}' #{shared_dir}/ #{host}:#{shared_path}/#{basename}/" end end end end |
#set_current_revision ⇒ Object
Identify the SHA of the commit that will be deployed. This will most likely involve SshKit’s capture method.
134 135 136 137 138 |
# File 'lib/capistrano/bundle_rsync/scm.rb', line 134 def set_current_revision raise NotImplementedError.new( "Your SCM strategy module should provide a #set_current_revision method" ) end |
#test ⇒ Boolean
Your implementation should check the existence of a cache repository on the deployment target
15 16 17 18 19 |
# File 'lib/capistrano/bundle_rsync/scm.rb', line 15 def test raise NotImplementedError.new( "Your SCM strategy module should provide a #test method" ) end |
#update ⇒ Object
Update the clone on the deployment target
52 53 54 55 56 |
# File 'lib/capistrano/bundle_rsync/scm.rb', line 52 def update raise NotImplementedError.new( "Your SCM strategy module should provide a #update method" ) end |