paratrooper 2.0.0 → 2.1.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 +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +23 -8
- data/lib/paratrooper/deploy.rb +8 -0
- data/lib/paratrooper/heroku_wrapper.rb +6 -2
- data/lib/paratrooper/version.rb +1 -1
- data/spec/paratrooper/deploy_spec.rb +7 -0
- data/spec/paratrooper/heroku_wrapper_spec.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 410362d7ac00deb0a6d77c47b68d147b68fb8865
|
4
|
+
data.tar.gz: 0058698a8877213f584926400c349ab063782696
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eada1e483d9c5d98e2261cf9fd5bdcb7be476add7c95259758f353931f8342d9d4ecaf944d12592c68eb148133cb9c3a797057574829631e7d3c0a675d876de6
|
7
|
+
data.tar.gz: d8278b08c8037ab5aaa5adbd4924e697dd72b02d81c477cdb4864b7c5768d375acafe29ce8c217b998dee20bdb38aa9b3fb1c57a205ffd1635cfa724e5b27928
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -103,9 +103,7 @@ By providing tag options for Paratrooper, your code can be tagged and deployed f
|
|
103
103
|
|
104
104
|
### Staging example
|
105
105
|
```ruby
|
106
|
-
Paratrooper::Deploy.new("staging-app",
|
107
|
-
tag: 'staging'
|
108
|
-
)
|
106
|
+
Paratrooper::Deploy.new("staging-app", tag: 'staging')
|
109
107
|
```
|
110
108
|
This will create/update a `staging` git tag at `HEAD`.
|
111
109
|
|
@@ -149,9 +147,7 @@ require 'paratrooper'
|
|
149
147
|
namespace :deploy do
|
150
148
|
desc 'Deploy app in staging environment'
|
151
149
|
task :staging do
|
152
|
-
deployment = Paratrooper::Deploy.new("amazing-staging-app",
|
153
|
-
tag: 'staging'
|
154
|
-
)
|
150
|
+
deployment = Paratrooper::Deploy.new("amazing-staging-app", tag: 'staging')
|
155
151
|
|
156
152
|
deployment.deploy
|
157
153
|
end
|
@@ -162,7 +158,7 @@ namespace :deploy do
|
|
162
158
|
deploy.tag = 'production',
|
163
159
|
deploy.match_tag = 'staging',
|
164
160
|
deploy.maintenance_mode = !ENV['NO_MAINTENANCE']
|
165
|
-
|
161
|
+
end
|
166
162
|
|
167
163
|
deployment.deploy
|
168
164
|
end
|
@@ -196,7 +192,6 @@ to disable your application monitoring.
|
|
196
192
|
|
197
193
|
```ruby
|
198
194
|
# lib/tasks/deploy.rake
|
199
|
-
require 'paratrooper'
|
200
195
|
|
201
196
|
namespace :deploy do
|
202
197
|
desc 'Deploy app in production environment'
|
@@ -219,6 +214,26 @@ namespace :deploy do
|
|
219
214
|
end
|
220
215
|
```
|
221
216
|
|
217
|
+
Or maybe you just want to run a rake task on your application
|
218
|
+
|
219
|
+
```ruby
|
220
|
+
# lib/tasks/deploy.rake
|
221
|
+
|
222
|
+
namespace :deploy do
|
223
|
+
desc 'Deploy app in production environment'
|
224
|
+
task :production do
|
225
|
+
deployment = Paratrooper::Deploy.new("amazing-production-app") do |deploy|
|
226
|
+
deploy.add_callback(:after_teardown) do |output|
|
227
|
+
output.display("Running some task that needs to run")
|
228
|
+
deploy.add_remote_task("rake some:task:to:run")
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
deployment.deploy
|
233
|
+
end
|
234
|
+
end
|
235
|
+
```
|
236
|
+
|
222
237
|
## Contributing
|
223
238
|
|
224
239
|
1. Fork it
|
data/lib/paratrooper/deploy.rb
CHANGED
@@ -175,6 +175,14 @@ module Paratrooper
|
|
175
175
|
end
|
176
176
|
alias_method :deploy, :default_deploy
|
177
177
|
|
178
|
+
# Public: Runs task on your heroku instance.
|
179
|
+
#
|
180
|
+
# task_name - String name of task to run on heroku instance
|
181
|
+
#
|
182
|
+
def add_remote_task(task_name)
|
183
|
+
heroku.run_task(task_name)
|
184
|
+
end
|
185
|
+
|
178
186
|
private
|
179
187
|
def app_url
|
180
188
|
heroku.app_url
|
@@ -31,8 +31,12 @@ module Paratrooper
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def run_migrations
|
34
|
-
|
35
|
-
|
34
|
+
run_task('rake db:migrate')
|
35
|
+
end
|
36
|
+
|
37
|
+
def run_task(task_name)
|
38
|
+
data = heroku_api.post_ps(app_name, task_name, attach: 'true').body
|
39
|
+
rendezvous.start(url: data['rendezvous_url'])
|
36
40
|
end
|
37
41
|
|
38
42
|
def last_deploy_commit
|
data/lib/paratrooper/version.rb
CHANGED
@@ -382,5 +382,12 @@ describe Paratrooper::Deploy do
|
|
382
382
|
end
|
383
383
|
end
|
384
384
|
end
|
385
|
+
|
386
|
+
describe "#add_remote_task" do
|
387
|
+
it "makes call to heroku to run task" do
|
388
|
+
expect(heroku).to receive(:run_task).with("rake some:task:to:run")
|
389
|
+
deployer.add_remote_task("rake some:task:to:run")
|
390
|
+
end
|
391
|
+
end
|
385
392
|
end
|
386
393
|
end
|
@@ -132,4 +132,12 @@ describe Paratrooper::HerokuWrapper do
|
|
132
132
|
end
|
133
133
|
end
|
134
134
|
end
|
135
|
+
|
136
|
+
describe "#run_task" do
|
137
|
+
it 'calls into the heroku api' do
|
138
|
+
task = 'rake some:task:to:run'
|
139
|
+
expect(heroku_api).to receive(:post_ps).with(app_name, task, attach: 'true').and_return(double(body: ''))
|
140
|
+
wrapper.run_task(task)
|
141
|
+
end
|
142
|
+
end
|
135
143
|
end
|
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
|
+
version: 2.1.0
|
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-02-
|
12
|
+
date: 2014-02-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|