capistrano-mb 0.22.2 → 0.23.0

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: ffdb9f630e70934e96f92ed8e881240d2d61770c
4
- data.tar.gz: 26f525d2a3396ab2994ae08cb22431051b512d71
3
+ metadata.gz: b0bf12dd707d6d24d97510271923e2b808551369
4
+ data.tar.gz: d82f49ab413a40e89639974be522fbb6aeee89e0
5
5
  SHA512:
6
- metadata.gz: 76c47fc1b2a63c1fdc299f73eb9888ce12ec1eb63054fd59bdc5ac278f6cf739e532c2f0323770e6b82d9c229094ae4e2521216e0140699e3832085b4ba4ac01
7
- data.tar.gz: 70f1a57340dc9810dc6940a380ba111d12a8e6b7a702f05c2bd34ee7518af9fecd98c8cbcc770822a937fa35f7d3d0fda8c4ad2467b07153ee9dfa84c9e7079f
6
+ metadata.gz: ff8b4895ffa87304bacdef0279caa8db45a7f0dd42215653c7ded17a7e5bec2800a7596bb8d0027f29f6927706a5f34c64c3fdce94e2d90400c630d460ce3c69
7
+ data.tar.gz: 89e74b626f258c05ff2c499cf91da747c25c9ae71d48b62b655930879405a6e2b3cd6aa3189c40f833aed1be2672220c71c8a709742a6803c818b420bcb740c5
data/CHANGELOG.md CHANGED
@@ -2,15 +2,27 @@
2
2
 
3
3
  * Your contribution here!
4
4
 
5
- ## 0.22.2 (2015-06-22)
5
+ ## [0.23.0][] (2015-07-10)
6
+
7
+ This release introduces a `bundler` recipe that automatically installs or upgrades bundler using `gem install bundler` during `cap deploy`. To disable this behavior:
8
+
9
+ ```ruby
10
+ set :mb_bundler_gem_install_command, nil
11
+ ```
12
+
13
+ Other changes:
14
+
15
+ * No longer assume that the `colorize` gem is available (it may be removed in an upcoming version of SSHKit/capistrano).
16
+
17
+ ## [0.22.2][] (2015-06-22)
6
18
 
7
19
  * For backwards compatibility with capistrano-fiftyfive, also search `lib/capistrano/fiftyfive/templates` for template files (the preferred location is `lib/capistrano/mb/templates`).
8
20
 
9
- ## 0.22.1 (2015-06-22)
21
+ ## [0.22.1][] (2015-06-22)
10
22
 
11
23
  * Remove "capistrano-fiftyfive has been renamed to capistrano-mb" post-install message.
12
24
 
13
- ## 0.22.0 (2015-06-22)
25
+ ## [0.22.0][] (2015-06-22)
14
26
 
15
27
  **THIS GEM HAS A NEW NAME! It is now `capistrano-mb`.**
16
28
 
@@ -18,43 +30,43 @@
18
30
  * All tasks now use the `mb` namespace. E.g. `cap fiftyfive:crontab` is now `cap mb:crontab`.
19
31
  * For backwards compatibility, you can still use the `fiftyfive` versions, but a deprecation warning will be printed. This compatibility will be removed in capistrano-mb 1.0.
20
32
 
21
- ## 0.21.0 (2015-06-22)
33
+ ## [0.21.0][] (2015-06-22)
22
34
 
23
35
  * Add a post-install message explaining the rename of `capistrano-fiftyfive` to `capistrano-mb`.
24
36
 
25
- ## 0.20.1 (2015-05-29)
37
+ ## [0.20.1][] (2015-05-29)
26
38
 
27
39
  * An internal change in Capistrano 3.4.0 caused `fiftyfive:aptitude:install` to fail to install packages. This is now fixed.
28
40
 
29
- ## 0.20.0 (2015-05-29)
41
+ ## [0.20.0][] (2015-05-29)
30
42
 
31
43
  * Increase SSL/TLS security of the generated nginx configuration by following the suggestions of [weakdh.org](https://weakdh.org/sysadmin.html).
32
44
 
33
- ## 0.19.0 (2015-04-10)
45
+ ## [0.19.0][] (2015-04-10)
34
46
 
35
47
  * Add `--retry=3` to bundle install options. This will help prevent deployment failures in case that a gem initially fails to download during the `bundle install` step.
36
48
  * Ensure that `--dry-run` works without crashing. This involved working around Capistrano's `download!` behavior (it returns a String normally, but an entirely different object during a dry run).
37
49
 
38
- ## 0.18.0
50
+ ## [0.18.0][]
39
51
 
40
52
  * **The abbreviated log formatter has been removed and is now available in a new gem: `airbrussh`.** With this change, capistrano-fiftyfive no longer automatically changes the logging format of capistrano. To opt into the prettier, more concise format, add the airbrussh gem to your project as explained in the [airbrussh README](https://github.com/mattbrictson/airbrussh#readme).
41
53
  * The version initializer that capistrano-fiftyfive adds during deployment sets a new value: `Rails.application.config.version_time`. You can use this value within your app for the date and time of the last commit that produced the version that is currently deployed.
42
54
 
43
55
 
44
- ## 0.17.2
56
+ ## [0.17.2][]
45
57
 
46
58
  * Default self-signed SSL certificate is now more generic (for real this time).
47
59
 
48
- ## 0.17.1
60
+ ## [0.17.1][]
49
61
 
50
62
  * Cosmetic changes to the gemspec.
51
63
 
52
- ## 0.17.0
64
+ ## [0.17.0][]
53
65
 
54
66
  * Write a banner message into `capistrano.log` at the start of each cap run, to aid in troubleshooting.
55
67
  * Default self-signed SSL certificate is now more generic.
56
68
 
57
- ## 0.16.0
69
+ ## [0.16.0][]
58
70
 
59
71
  * capistrano-fiftyfive now requires capistrano >= 3.3.5 and sshkit => 1.6.1
60
72
  * `ask_secretly` has been removed in favor of Capistrano's built-in `ask ..., :echo => false`
@@ -62,20 +74,20 @@
62
74
  * highline dependency removed
63
75
  * Install libffi-dev so that Ruby 2.2.0 can be compiled
64
76
 
65
- ## 0.15.2
77
+ ## [0.15.2][]
66
78
 
67
79
  * The capistrano-fiftyfive GitHub repository has changed: it is now <https://github.com/mattbrictson/capistrano-fiftyfive>.
68
80
 
69
- ## 0.15.1
81
+ ## [0.15.1][]
70
82
 
71
83
  * Remove `-j4` bundler flag
72
84
 
73
- ## 0.15.0
85
+ ## [0.15.0][]
74
86
 
75
87
  * Dump useful troubleshooting information when a deploy fails.
76
88
  * Nginx/unicorn: fix syntax errors introduced by changes in 0.14.0, ensuring that gzip and far-future expires headers are sent as expected.
77
89
 
78
- ## 0.14.0
90
+ ## [0.14.0][]
79
91
 
80
92
  * The `highline` gem is now a dependency ([#3](https://github.com/mattbrictson/capistrano-fiftyfive/pull/3) from [@ahmozkya](https://github.com/ahmozkya)).
81
93
  * Dotenv: only mask input when prompting for keys containing the words "key", "secret", "token", or "password". Input for other keys is echoed for easier data entry.
@@ -83,7 +95,7 @@
83
95
  * Nginx/unicorn: tweak reverse-proxy cache settings to prevent cache stampede.
84
96
  * Nginx/unicorn: apply far-future expires cache headers only for assets that have fingerprints.
85
97
 
86
- ## 0.13.0
98
+ ## [0.13.0][]
87
99
 
88
100
  The provisioning tasks now work for a non-root user that has password-less sudo privileges. Assuming a user named `matt` that can sudo without being prompted for a password ([instructions here](http://askubuntu.com/questions/192050/how-to-run-sudo-command-with-no-password)), simply modify `deploy.rb` with:
89
101
 
@@ -93,30 +105,55 @@ set :fiftyfive_privileged_user, "matt"
93
105
 
94
106
  Now all provisioning tasks that would normally run as root will instead run as `matt` using `sudo`.
95
107
 
96
- ## 0.12.0
108
+ ## [0.12.0][]
97
109
 
98
110
  * capistrano-fiftyfive's abbreviated format now honors the new `SSHKIT_COLOR` environment variable. Set `SSHKIT_COLOR=1` to force ANSI color even on non-ttys (e.g. Jenkins).
99
111
  * The generated nginx config now enables reverse proxy caching by default.
100
112
  * INFO messages printed by sshkit are now printed to console under the appropriate rake task heading.
101
113
 
102
- ## 0.11.1
114
+ ## [0.11.1][]
103
115
 
104
116
  Fixes errors caused by PostgreSQL password containing shell-unsafe characters. Passwords are now safely hashed with MD5 before being used in the `CREATE USER` command.
105
117
 
106
- ## 0.11.0
118
+ ## [0.11.0][]
107
119
 
108
120
  * INFO log messages are now included in abbreviated output (e.g. upload/download progress).
109
121
  * Add `agree()` method to the DSL, which delegates to `HighLine.new.agree`.
110
122
  * Add `fiftyfive:postgresql:dump`/`restore` tasks.
111
123
 
112
- ## 0.10.0
124
+ ## [0.10.0][]
113
125
 
114
126
  Add support for Ubuntu 14.04 LTS. To provision a 14.04 server, use the new `provision:14_04` task.
115
127
 
116
- ## 0.9.1
128
+ ## [0.9.1][]
117
129
 
118
130
  Flush console output after each line is printed. This allows deployment progress to be monitored in e.g. Jenkins.
119
131
 
120
132
  ## 0.9.0
121
133
 
122
134
  Initial Rubygems release!
135
+
136
+ [Unreleased]: https://github.com/mattbrictson/capistrano-mb/compare/v0.23.0...HEAD
137
+ [0.23.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.22.2...v0.23.0
138
+ [0.22.2]: https://github.com/mattbrictson/capistrano-mb/compare/v0.22.1...v0.22.2
139
+ [0.22.1]: https://github.com/mattbrictson/capistrano-mb/compare/v0.22.0...v0.22.1
140
+ [0.22.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.21.0...v0.22.0
141
+ [0.21.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.20.1...v0.21.0
142
+ [0.20.1]: https://github.com/mattbrictson/capistrano-mb/compare/v0.20.0...v0.20.1
143
+ [0.20.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.19.0...v0.20.0
144
+ [0.19.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.18.0...v0.19.0
145
+ [0.18.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.17.2...v0.18.0
146
+ [0.17.2]: https://github.com/mattbrictson/capistrano-mb/compare/v0.17.1...v0.17.2
147
+ [0.17.1]: https://github.com/mattbrictson/capistrano-mb/compare/v0.17.0...v0.17.1
148
+ [0.17.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.16.0...v0.17.0
149
+ [0.16.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.15.2...v0.16.0
150
+ [0.15.2]: https://github.com/mattbrictson/capistrano-mb/compare/v0.15.1...v0.15.2
151
+ [0.15.1]: https://github.com/mattbrictson/capistrano-mb/compare/v0.15.0...v0.15.1
152
+ [0.15.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.14.0...v0.15.0
153
+ [0.14.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.13.0...v0.14.0
154
+ [0.13.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.12.0...v0.13.0
155
+ [0.12.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.11.1...v0.12.0
156
+ [0.11.1]: https://github.com/mattbrictson/capistrano-mb/compare/v0.11.0...v0.11.1
157
+ [0.11.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.10.0...v0.11.0
158
+ [0.10.0]: https://github.com/mattbrictson/capistrano-mb/compare/v0.9.1...v0.10.0
159
+ [0.9.1]: https://github.com/mattbrictson/capistrano-mb/compare/v0.9.0...v0.9.1
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 55 Minutes Inc
1
+ Copyright (c) 2015 Matt Brictson
2
2
 
3
3
  MIT License
4
4
 
data/lib/capistrano/mb.rb CHANGED
@@ -26,4 +26,5 @@ load File.expand_path("../tasks/seed.rake", __FILE__)
26
26
  load File.expand_path("../tasks/version.rake", __FILE__)
27
27
  load File.expand_path("../tasks/rake.rake", __FILE__)
28
28
  load File.expand_path("../tasks/sidekiq.rake", __FILE__)
29
+ load File.expand_path("../tasks/bundler.rake", __FILE__)
29
30
  load File.expand_path("../tasks/fiftyfive.rake", __FILE__)
@@ -1,17 +1,37 @@
1
- require 'colorize'
1
+ module Capistrano
2
+ module MB
3
+ module Compatibility
4
+ def self.check
5
+ check_capistrano_and_rake_are_loaded
6
+ check_blacklisted_capistrano_version
7
+ end
2
8
 
3
- unless defined?(Capistrano) && defined?(:namespace)
4
- $stderr.puts\
5
- "WARNING: capistrano/mb must be loaded by Capistrano in order "\
6
- "to work.\nRequire this gem by using Capistrano's Capfile, "\
7
- "as described here:\n"\
8
- "https://github.com/mattbrictson/capistrano-mb#installation"\
9
- .colorize(:red)
10
- end
9
+ def self.check_capistrano_and_rake_are_loaded
10
+ return if defined?(Capistrano::VERSION) && defined?(Rake)
11
+
12
+ warn "capistrano/mb must be loaded by Capistrano in order "\
13
+ "to work.\nRequire this gem by using Capistrano's Capfile, "\
14
+ "as described here:\n"\
15
+ "https://github.com/mattbrictson/capistrano-mb#installation"
16
+ end
17
+
18
+ def self.check_blacklisted_capistrano_version
19
+ return unless defined?(Capistrano::VERSION)
20
+ return unless Capistrano::VERSION == "3.2.0"
11
21
 
12
- if Capistrano::VERSION == "3.2.0"
13
- $stderr.puts\
14
- "WARNING: Capistrano 3.2.0 has a critical bug that prevents "\
15
- "capistrano-mb from working as intended:\n"\
16
- "https://github.com/capistrano/capistrano/issues/1004".colorize(:red)
22
+ warn "Capistrano 3.2.0 has a critical bug that prevents "\
23
+ "capistrano-mb from working as intended:\n"\
24
+ "https://github.com/capistrano/capistrano/issues/1004"
25
+ end
26
+
27
+ # We can't really rely on anything being loaded at this point, so define
28
+ # our own basic colorizing helper.
29
+ def self.warn(message)
30
+ return $stderr.puts("WARNING: #{message}") unless $stderr.tty?
31
+ $stderr.puts("\e[0;31;49mWARNING: #{message}\e[0m")
32
+ end
33
+ end
34
+ end
17
35
  end
36
+
37
+ Capistrano::MB::Compatibility.check
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module MB
3
- VERSION = "0.22.2"
3
+ VERSION = "0.23.0"
4
4
  end
5
5
  end
@@ -0,0 +1,31 @@
1
+ mb_recipe :bundler do
2
+ prior_to "bundler:install", "gem_install"
3
+ end
4
+
5
+ namespace :mb do
6
+ namespace :bundler do
7
+ desc "Install correct version of bundler based on Gemfile.lock"
8
+ task :gem_install do
9
+ install_command = fetch(:mb_bundler_gem_install_command, nil)
10
+ next unless install_command
11
+
12
+ on fetch(:bundle_servers) do
13
+ within release_path do
14
+ if (bundled_with = capture_bundled_with)
15
+ execute "#{install_command} -v #{bundled_with}"
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ def capture_bundled_with
22
+ lockfile = fetch(:mb_bundler_lockfile, "Gemfile.lock")
23
+ return unless test "[ -f #{release_path.join(lockfile)} ]"
24
+
25
+ ruby_expr = 'puts $<.read[/BUNDLED WITH\n (\S+)$/, 1]'
26
+ version = capture :ruby, "-e", ruby_expr.shellescape, lockfile
27
+ version.strip!
28
+ version.empty? ? nil : version
29
+ end
30
+ end
31
+ end
@@ -3,6 +3,7 @@ namespace :load do
3
3
 
4
4
  set :mb_recipes, %w(
5
5
  aptitude
6
+ bundler
6
7
  crontab
7
8
  dotenv
8
9
  logrotate
@@ -31,6 +32,10 @@ namespace :load do
31
32
  "postgresql@ppa:pitti/postgresql" => :db,
32
33
  "ufw" => :all
33
34
 
35
+ set :mb_bundler_lockfile, "Gemfile.lock"
36
+ set :mb_bundler_gem_install_command,
37
+ "gem install bundler --conservative --no-document"
38
+
34
39
  set :mb_delayed_job_args, "-n 2"
35
40
  set :mb_delayed_job_script, "bin/delayed_job"
36
41
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-mb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.2
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Brictson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-22 00:00:00.000000000 Z
11
+ date: 2015-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -117,6 +117,7 @@ files:
117
117
  - lib/capistrano/mb/templates/version.rb.erb
118
118
  - lib/capistrano/mb/version.rb
119
119
  - lib/capistrano/tasks/aptitude.rake
120
+ - lib/capistrano/tasks/bundler.rake
120
121
  - lib/capistrano/tasks/crontab.rake
121
122
  - lib/capistrano/tasks/defaults.rake
122
123
  - lib/capistrano/tasks/delayed_job.rake