capistrano-bundle_rsync 0.4.6 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6e2272c0917be88fe7b2d61b89942628ee818d18
4
- data.tar.gz: 306a9a7fe26593790c0b606463df5a190cd9a2d0
3
+ metadata.gz: 2f014be48949a6735ed744c4795e659db58a096a
4
+ data.tar.gz: e8038d006efc199865f7d069a26694b2bf777c44
5
5
  SHA512:
6
- metadata.gz: d79a46b6a720e4a4239178123029f8aaa6eac9ceda6ddfacb9a6eb2fc2b8ac149030c21ef82178c8dbca782f192beb615032068df68e480039af0a2eb30bf29e
7
- data.tar.gz: cd4831d0ecc67a598c2499fe8591e564db547a2aa954e493437915ef76eb4803a2bd21c836cd9c0f1836947087593475524b4dd6cc7c1155f99f20d233296ada
6
+ metadata.gz: 872b6b0c2ecff6fe231c3ad816c0b91982d1df2ecb4e1e71dd983b09704d0ee082905f3ecf8e1b826777cb66f0a4074b2ac090e854ec15a7bb81ace30d9c54ee
7
+ data.tar.gz: dd0b47db60be4ae962c11c2bfca06fa2819669c28f64c179e6c677fa6cc3b3457be478247d474b92266296f8c55406d63c9e9201e4bf77e05b46574f9751dd33
data/.gitignore CHANGED
@@ -17,4 +17,8 @@ test/version_tmp
17
17
  tmp
18
18
  example/.local_repo
19
19
  example/.capistrano
20
+ example/.vagrant
21
+ example/log
22
+ example/vendor
23
+ example/try_rails4
20
24
  .ruby-version
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ # 0.4.7 (2016/07/22)
2
+
3
+ Fixes:
4
+
5
+ * Fix cleaning .local_repo/releases was not working if skip_bundle is specified (thanks to @kozyty)
6
+
1
7
  # 0.4.6 (2016/02/03)
2
8
 
3
9
  Enhancements:
data/README.md CHANGED
@@ -54,8 +54,8 @@ scm | nil | Must be `bundle_rsync` to use capistrano-bundle_rsync.
54
54
  bundle_rsync_scm | `git` | SCM Strategy inside `bundle_rsync`. `git` uses git. `local_git` also uses git, but it enables to rsync the git repository located on local path directly without git clone. `repo_url` must be the local directory path to use `local_git`.
55
55
  bundle_rsync_local_base_path | `$(pwd)/.local_repo` | The base directory to clone repository
56
56
  bundle_rsync_local_mirror_path | `#{base_path}/mirror"` | Path where to mirror your repository
57
- bundle_rsync_local_releases_path | `"#{base_path}/releases"` | Path of the directory to checkout your repository
58
- bundle_rsync_local_release_path | `"#{releases_path}/#{datetime}"` | Path to checkout your repository (releases_path + release_name). If you specify this, `keep_releases` for local releases path is disabled because `datetime` directories are no longer created. This parameter is set as `repo_url` in the case of `local_git` as default.
57
+ bundle_rsync_local_releases_path | `"#{base_path}/releases"` | The releases base directory to checkout your repository
58
+ bundle_rsync_local_release_path | `"#{releases_path}/#{datetime}"` | The full path directory to checkout your repository. If you specify this, `keep_releases` for local releases path is disabled because `datetime` directories are no longer created.
59
59
  bundle_rsync_local_bundle_path | `"#{base_path}/bundle"` | Path where to bundle install gems.
60
60
  bundle_rsync_ssh_options | `ssh_options` | Configuration of ssh for rsync. Default uses the value of `ssh_options`
61
61
  bundle_rsync_keep_releases | `keep_releases` | The number of releases to keep on .local_repo
@@ -79,6 +79,7 @@ $ cap stage deploy --trace | grep Execute
79
79
  ** Execute bundle_rsync:rsync_release
80
80
  ** Execute bundle_rsync:rsync_shared
81
81
  ** Execute bundle_rsync:bundler:rsync
82
+ ** Execute bundle_rsync:clean_release
82
83
  ** Execute bundle_rsync:set_current_revision
83
84
  ```
84
85
 
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "capistrano-bundle_rsync"
7
- spec.version = "0.4.6"
7
+ spec.version = "0.4.7"
8
8
  spec.authors = ["sonots", "tohae"]
9
9
  spec.email = ["sonots@gmail.com", "tohaechan@gmail.com"]
10
10
  spec.description = %q{Deploy an application and bundled gems via rsync}
data/example/README.md CHANGED
@@ -1,7 +1,48 @@
1
1
  How to run:
2
2
 
3
+ ```
4
+ brew install vagrant
5
+ vagrant up
6
+ ```
7
+
8
+ prepare rbenv, ruby in the vagrant box
9
+
10
+ ```
11
+ vagrant ssh
12
+ sudo yum install gcc make openssl-devel readline-devel zlib-devel
13
+ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
14
+ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
15
+ echo 'export PATH="$HOME/.rbenv/bin:$PATH" && eval "$(rbenv init -)"' >> ~/.bash_profile
16
+ export PATH="$HOME/.rbenv/bin:$PATH" && eval "$(rbenv init -)"
17
+ rbenv install 2.3.0
18
+ ```
19
+
20
+ prepare ssh keys in the vagrant box
21
+
22
+ ```
23
+ ssh-keygen
24
+ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
25
+ ```
26
+
27
+ prepare capistrano-bundle_rsync repository in the vagrant box
28
+
29
+ ```
30
+ git clone git@github.com:sonots/capistrano-bundle_rsync
31
+ cd capistrano-bundle_rsync/example
32
+ bundle install --path vendor/bundle
33
+ ```
34
+
35
+ run
36
+
3
37
  ```
4
38
  bundle exec cap git deploy
39
+ ```
40
+
41
+ ```
42
+ git clone git@github.com:sonots/try_rails4.git
5
43
  bundle exec cap local_git deploy
44
+ ```
45
+
46
+ ```
6
47
  bundle exec cap skip_bundle deploy
7
48
  ```
@@ -0,0 +1,24 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
5
+ VAGRANTFILE_API_VERSION = "2"
6
+
7
+ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
8
+ # All Vagrant configuration is done here. The most common configuration
9
+ # options are documented and commented below. For a complete reference,
10
+ # please see the online documentation at vagrantup.com.
11
+
12
+ # Every Vagrant virtual environment requires a box to build off of.
13
+ config.vm.box = "centos6.5.3"
14
+ config.vm.box_url = 'https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box'
15
+
16
+ # name
17
+ config.vm.define "vagrant-centos"
18
+ config.ssh.forward_agent = true
19
+
20
+ config.vm.provider "virtualbox" do |vb|
21
+ # Use VBoxManage to customize the VM. For example to change memory:
22
+ vb.customize ["modifyvm", :id, "--memory", "1024"]
23
+ end
24
+ end
@@ -1,4 +1,4 @@
1
1
  set :bundle_rsync_scm, 'local_git'
2
- set :repo_url, "#{ENV['HOME']}/src/github.com/sonots/try_rails4"
2
+ set :repo_url, "#{ENV['PWD']}/try_rails4" # git clone git@github.com:sonots/try_rails4.git
3
3
 
4
4
  role :app, ['127.0.0.1']
@@ -42,21 +42,5 @@ BUNDLE_BIN: #{release_path.join('bin')}
42
42
  execute :rsync, "#{rsync_options} --rsh='#{ssh}' #{config.local_bundle_path}/ #{host}:#{shared_path}/bundle/"
43
43
  execute :rsync, "#{rsync_options} --rsh='#{ssh}' #{bundle_config_path} #{host}:#{release_path}/.bundle/config"
44
44
  end
45
-
46
- # Do not remove if :bundle_rsync_local_release_path is directly specified
47
- # because releases/#{datetime} directories are not created in such case.
48
- # Note that :bundle_rsync_local_release_path is automatically set when `local_git` scm is used.
49
- unless fetch(:bundle_rsync_local_release_path)
50
- releases = capture(:ls, '-x', config.local_releases_path).split
51
- if releases.count >= config.keep_releases
52
- directories = (releases - releases.last(config.keep_releases))
53
- if directories.any?
54
- directories_str = directories.map do |release|
55
- File.join(config.local_releases_path, release)
56
- end.join(" ")
57
- execute :rm, '-rf', directories_str
58
- end
59
- end
60
- end
61
45
  end
62
46
  end
@@ -35,6 +35,22 @@ class Capistrano::BundleRsync::Git < Capistrano::BundleRsync::SCM
35
35
  end
36
36
  end
37
37
 
38
+ def clean_release
39
+ # Do not remove if :bundle_rsync_local_release_path is directly specified
40
+ # because releases/#{datetime} directories are no longer created.
41
+ return if fetch(:bundle_rsync_local_release_path)
42
+ releases = capture(:ls, '-x', config.local_releases_path).split
43
+ if releases.count >= config.keep_releases
44
+ directories = (releases - releases.last(config.keep_releases))
45
+ if directories.any?
46
+ directories_str = directories.map do |release|
47
+ File.join(config.local_releases_path, release)
48
+ end.join(" ")
49
+ execute :rm, '-rf', directories_str
50
+ end
51
+ end
52
+ end
53
+
38
54
  def rsync_release
39
55
  hosts = ::Capistrano::Configuration.env.filter(release_roles(:all))
40
56
  rsync_options = config.rsync_options
@@ -17,6 +17,9 @@ class Capistrano::BundleRsync::LocalGit < Capistrano::BundleRsync::SCM
17
17
  def create_release
18
18
  end
19
19
 
20
+ def clean_release
21
+ end
22
+
20
23
  def rsync_release
21
24
  hosts = ::Capistrano::Configuration.env.filter(release_roles(:all))
22
25
  rsync_options = config.rsync_options
@@ -67,6 +67,18 @@ class Capistrano::BundleRsync::SCM < Capistrano::BundleRsync::Base
67
67
  )
68
68
  end
69
69
 
70
+ # @abstract
71
+ #
72
+ # Clean the contents of the cache-repository onto the release path
73
+ #
74
+ # @return void
75
+ #
76
+ def clean_release
77
+ raise NotImplementedError.new(
78
+ "Your SCM strategy module should provide a #clean_release method"
79
+ )
80
+ end
81
+
70
82
  # @abstract
71
83
  #
72
84
  # Rsync the contents of the release path
@@ -17,7 +17,6 @@ namespace :bundle_rsync do
17
17
  @bundle_rsync_scm ||=
18
18
  if fetch(:bundle_rsync_scm).to_s == 'local_git'
19
19
  require 'capistrano/bundle_rsync/local_git'
20
- set :bundle_rsync_local_release_path, repo_url
21
20
  Capistrano::BundleRsync::LocalGit.new(self)
22
21
  else
23
22
  require 'capistrano/bundle_rsync/git'
@@ -91,6 +90,14 @@ namespace :bundle_rsync do
91
90
  end
92
91
  end
93
92
 
93
+ # additional extra tasks of bundle_rsync scm
94
+ desc 'Clean releases'
95
+ task :clean_release do
96
+ run_locally do
97
+ bundle_rsync_scm.clean_release
98
+ end
99
+ end
100
+
94
101
  desc 'Determine the revision that will be deployed'
95
102
  task :set_current_revision do
96
103
  run_locally do
@@ -102,5 +109,6 @@ namespace :bundle_rsync do
102
109
  after 'bundle_rsync:bundler:install', 'bundle_rsync:rsync_release'
103
110
  after 'bundle_rsync:rsync_release', 'bundle_rsync:rsync_shared'
104
111
  after 'bundle_rsync:rsync_shared', 'bundle_rsync:bundler:rsync'
112
+ after 'bundle_rsync:bundler:rsync', 'bundle_rsync:clean_release'
105
113
  end
106
114
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-bundle_rsync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - sonots
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-02-03 00:00:00.000000000 Z
12
+ date: 2016-07-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano
@@ -100,6 +100,7 @@ files:
100
100
  - example/Capfile
101
101
  - example/Gemfile
102
102
  - example/README.md
103
+ - example/Vagrantfile
103
104
  - example/config/deploy.rb
104
105
  - example/config/deploy/git.rb
105
106
  - example/config/deploy/local_git.rb