paratrooper 2.4.0 → 2.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +3 -3
- data/lib/paratrooper/deploy.rb +7 -3
- data/lib/paratrooper/version.rb +1 -1
- data/script/bootstrap +5 -0
- data/script/test +9 -0
- data/spec/paratrooper/deploy_spec.rb +38 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56e1f38d2b16ea6a3a7ea3f638ca46299dbb593d
|
4
|
+
data.tar.gz: 52ca5fd168124dffdec952b953e56bbbeac73479
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5363c5346e761369f59b7d1dc57568dd0a18f6bc47f9125d7a4b898111e82153fd4aba5fe20005d3f6a1502ce9906d48cd99241a8bb8de51bf490a159e1251c7
|
7
|
+
data.tar.gz: c3ed3e7e73606aca077b6264a2313863f66dacdca8b5428c1d085072f130d25fda734f1323e420cb56f3cd3487b7b4d3124b13f539e2c15942aa394d975508ad
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/paratrooper.png)](http://badge.fury.io/rb/paratrooper)
|
4
4
|
[![Build Status](https://travis-ci.org/mattpolito/paratrooper.png?branch=master)](https://travis-ci.org/mattpolito/paratrooper)
|
5
5
|
[![Code Climate](https://codeclimate.com/github/mattpolito/paratrooper.png)](https://codeclimate.com/github/mattpolito/paratrooper)
|
6
|
+
[![Gitter chat](https://badges.gitter.im/mattpolito/paratrooper.png)](https://gitter.im/mattpolito/paratrooper)
|
6
7
|
|
7
8
|
Simplify your [Heroku][] deploy with quick and concise deployment rake tasks.
|
8
9
|
|
@@ -131,12 +132,10 @@ You can use the object's methods any way you'd like, but we've provided a sensib
|
|
131
132
|
|
132
133
|
This will perform the following tasks:
|
133
134
|
|
134
|
-
* Activate maintenance mode
|
135
135
|
* Create or update a git tag (if provided)
|
136
136
|
* Push changes to Heroku
|
137
137
|
* Run database migrations if any have been added to db/migrate
|
138
138
|
* Restart the application
|
139
|
-
* Deactivate maintenance mode
|
140
139
|
* Warm application instance
|
141
140
|
|
142
141
|
### Example Usage
|
@@ -213,7 +212,7 @@ namespace :deploy do
|
|
213
212
|
end
|
214
213
|
```
|
215
214
|
|
216
|
-
Or maybe you just want to run a rake task on your application
|
215
|
+
Or maybe you just want to run a rake task on your application. Since this task may take a moment to complete it's probably a good idea to throw up a maintenance page.
|
217
216
|
|
218
217
|
```ruby
|
219
218
|
# lib/tasks/deploy.rake
|
@@ -222,6 +221,7 @@ namespace :deploy do
|
|
222
221
|
desc 'Deploy app in production environment'
|
223
222
|
task :production do
|
224
223
|
deployment = Paratrooper::Deploy.new("amazing-production-app") do |deploy|
|
224
|
+
deploy.maintenance = true
|
225
225
|
deploy.add_callback(:after_teardown) do |output|
|
226
226
|
output.display("Running some task that needs to run")
|
227
227
|
deploy.add_remote_task("rake some:task:to:run")
|
data/lib/paratrooper/deploy.rb
CHANGED
@@ -14,7 +14,7 @@ module Paratrooper
|
|
14
14
|
|
15
15
|
attr_accessor :app_name, :notifiers, :system_caller, :heroku, :tag_name,
|
16
16
|
:match_tag_name, :protocol, :deployment_host, :migration_check, :debug,
|
17
|
-
:screen_notifier, :branch_name, :http_client
|
17
|
+
:screen_notifier, :branch_name, :http_client, :maintenance
|
18
18
|
|
19
19
|
alias_method :tag=, :tag_name=
|
20
20
|
alias_method :match_tag=, :match_tag_name=
|
@@ -46,6 +46,9 @@ module Paratrooper
|
|
46
46
|
# (optional, default: 'heroku.com').
|
47
47
|
# :migration_check - Object responsible for checking pending
|
48
48
|
# migrations (optional).
|
49
|
+
# :maintenance - If true, show maintenance page when pending
|
50
|
+
# migrations exists. False by default (optional).
|
51
|
+
# migrations (optional).
|
49
52
|
# :api_key - String version of heroku api key.
|
50
53
|
# (default: looks in local Netrc file).
|
51
54
|
# :http_client - Object responsible for making http calls
|
@@ -65,6 +68,7 @@ module Paratrooper
|
|
65
68
|
@debug = options[:debug] || false
|
66
69
|
@migration_check = options[:migration_check] || PendingMigrationCheck.new(match_tag_name, heroku, system_caller)
|
67
70
|
@http_client = options[:http_client] || HttpClientWrapper.new
|
71
|
+
@maintenance = options[:maintenance] || false
|
68
72
|
|
69
73
|
block.call(self) if block_given?
|
70
74
|
end
|
@@ -89,7 +93,7 @@ module Paratrooper
|
|
89
93
|
# Public: Activates Heroku maintenance mode.
|
90
94
|
#
|
91
95
|
def activate_maintenance_mode
|
92
|
-
return unless pending_migrations?
|
96
|
+
return unless maintenance && pending_migrations?
|
93
97
|
callback(:activate_maintenance_mode) do
|
94
98
|
notify(:activate_maintenance_mode)
|
95
99
|
heroku.app_maintenance_on
|
@@ -205,7 +209,7 @@ module Paratrooper
|
|
205
209
|
|
206
210
|
private
|
207
211
|
def app_url
|
208
|
-
heroku.app_url
|
212
|
+
heroku.app_url.sub(/\A\*\./, 'www.')
|
209
213
|
end
|
210
214
|
|
211
215
|
def callback(name, &block)
|
data/lib/paratrooper/version.rb
CHANGED
data/script/bootstrap
ADDED
data/script/test
ADDED
@@ -127,8 +127,8 @@ describe Paratrooper::Deploy do
|
|
127
127
|
end
|
128
128
|
|
129
129
|
describe "#activate_maintenance_mode" do
|
130
|
-
context "when
|
131
|
-
let(:options) { {
|
130
|
+
context "when maintenance option is 'true'" do
|
131
|
+
let(:options) { { maintenance: true } }
|
132
132
|
|
133
133
|
context "with pending migrations" do
|
134
134
|
before do
|
@@ -162,6 +162,42 @@ describe Paratrooper::Deploy do
|
|
162
162
|
end
|
163
163
|
end
|
164
164
|
end
|
165
|
+
|
166
|
+
context "when maintenance option is false" do
|
167
|
+
let(:options) { { maintenance: false } }
|
168
|
+
|
169
|
+
before do
|
170
|
+
migration_check.stub(:migrations_waiting?).and_return(true)
|
171
|
+
end
|
172
|
+
|
173
|
+
it 'does not send notification' do
|
174
|
+
deployer.should_not_receive(:notify).with(:activate_maintenance_mode)
|
175
|
+
deployer.activate_maintenance_mode
|
176
|
+
end
|
177
|
+
|
178
|
+
it "does not make a call to heroku to turn on maintenance mode" do
|
179
|
+
heroku.should_not_receive(:app_maintenance_on)
|
180
|
+
deployer.activate_maintenance_mode
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
context "when maintenance option is left as default" do
|
185
|
+
let(:options) { { } }
|
186
|
+
|
187
|
+
before do
|
188
|
+
migration_check.stub(:migrations_waiting?).and_return(true)
|
189
|
+
end
|
190
|
+
|
191
|
+
it 'does not send notification' do
|
192
|
+
deployer.should_not_receive(:notify).with(:activate_maintenance_mode)
|
193
|
+
deployer.activate_maintenance_mode
|
194
|
+
end
|
195
|
+
|
196
|
+
it "does not make a call to heroku to turn on maintenance mode" do
|
197
|
+
heroku.should_not_receive(:app_maintenance_on)
|
198
|
+
deployer.activate_maintenance_mode
|
199
|
+
end
|
200
|
+
end
|
165
201
|
end
|
166
202
|
|
167
203
|
describe "#deactivate_maintenance_mode" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paratrooper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Polito
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-07-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -138,6 +138,8 @@ files:
|
|
138
138
|
- lib/paratrooper/system_caller.rb
|
139
139
|
- lib/paratrooper/version.rb
|
140
140
|
- paratrooper.gemspec
|
141
|
+
- script/bootstrap
|
142
|
+
- script/test
|
141
143
|
- spec/fixtures/netrc
|
142
144
|
- spec/paratrooper/deploy_spec.rb
|
143
145
|
- spec/paratrooper/heroku_wrapper_spec.rb
|