heroku-rails 0.4.3 → 0.4.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +7 -1
- data/Gemfile +1 -2
- data/Gemfile.lock +31 -23
- data/Rakefile +7 -7
- data/heroku-rails.gemspec +3 -3
- data/lib/heroku-rails/config.rb +9 -1
- data/lib/heroku-rails/runner.rb +14 -29
- data/lib/heroku/rails/tasks.rb +6 -3
- metadata +21 -10
data/CHANGELOG
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
Heroku Rails
|
2
2
|
|
3
|
+
v0.4.4
|
4
|
+
============================================
|
5
|
+
Fix heroku rake
|
6
|
+
Upgrade heroku authorization
|
7
|
+
Fix deprecation warning
|
8
|
+
|
3
9
|
v0.2.0
|
4
10
|
============================================
|
5
11
|
Added Heroku Settings tasks, and rails generators
|
@@ -29,4 +35,4 @@ Glenn Roberts
|
|
29
35
|
|
30
36
|
v0.0.1.
|
31
37
|
============================================
|
32
|
-
Initial release.
|
38
|
+
Initial release.
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,44 +1,52 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
heroku-rails (0.4.
|
5
|
-
heroku (>=
|
4
|
+
heroku-rails (0.4.4)
|
5
|
+
heroku (>= 2.15.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: http://rubygems.org/
|
9
9
|
specs:
|
10
|
-
ZenTest (4.
|
11
|
-
addressable (2.2
|
10
|
+
ZenTest (4.8.2)
|
11
|
+
addressable (2.3.2)
|
12
12
|
archive-tar-minitar (0.5.2)
|
13
13
|
autotest (4.4.6)
|
14
14
|
ZenTest (>= 4.4.1)
|
15
|
-
columnize (0.3.
|
15
|
+
columnize (0.3.6)
|
16
16
|
diff-lcs (1.1.3)
|
17
|
+
excon (0.15.4)
|
17
18
|
growl-glue (1.0.7)
|
18
|
-
heroku (2.
|
19
|
+
heroku (2.30.1)
|
20
|
+
heroku-api (~> 0.3.1)
|
19
21
|
launchy (>= 0.3.2)
|
22
|
+
netrc (~> 0.7.5)
|
20
23
|
rest-client (~> 1.6.1)
|
21
24
|
rubyzip
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
+
heroku-api (0.3.1)
|
26
|
+
excon (~> 0.15.4)
|
27
|
+
json (1.7.4)
|
28
|
+
launchy (2.1.1)
|
29
|
+
addressable (~> 2.3)
|
25
30
|
linecache (0.46)
|
26
31
|
rbx-require-relative (> 0.0.4)
|
27
32
|
linecache19 (0.5.12)
|
28
33
|
ruby_core_source (>= 0.1.4)
|
29
|
-
mime-types (1.
|
30
|
-
|
31
|
-
|
34
|
+
mime-types (1.19)
|
35
|
+
netrc (0.7.5)
|
36
|
+
rake (0.9.2.2)
|
37
|
+
rbx-require-relative (0.0.9)
|
38
|
+
rdoc (3.12)
|
39
|
+
json (~> 1.4)
|
32
40
|
rest-client (1.6.7)
|
33
41
|
mime-types (>= 1.16)
|
34
|
-
rspec (2.
|
35
|
-
rspec-core (~> 2.
|
36
|
-
rspec-expectations (~> 2.
|
37
|
-
rspec-mocks (~> 2.
|
38
|
-
rspec-core (2.
|
39
|
-
rspec-expectations (2.
|
40
|
-
diff-lcs (~> 1.1.
|
41
|
-
rspec-mocks (2.
|
42
|
+
rspec (2.11.0)
|
43
|
+
rspec-core (~> 2.11.0)
|
44
|
+
rspec-expectations (~> 2.11.0)
|
45
|
+
rspec-mocks (~> 2.11.0)
|
46
|
+
rspec-core (2.11.1)
|
47
|
+
rspec-expectations (2.11.2)
|
48
|
+
diff-lcs (~> 1.1.3)
|
49
|
+
rspec-mocks (2.11.1)
|
42
50
|
ruby-debug (0.10.4)
|
43
51
|
columnize (>= 0.1)
|
44
52
|
ruby-debug-base (~> 0.10.4.0)
|
@@ -54,8 +62,7 @@ GEM
|
|
54
62
|
ruby-debug-base19 (>= 0.11.19)
|
55
63
|
ruby_core_source (0.1.5)
|
56
64
|
archive-tar-minitar (>= 0.5.2)
|
57
|
-
rubyzip (0.9.
|
58
|
-
term-ansicolor (1.0.7)
|
65
|
+
rubyzip (0.9.9)
|
59
66
|
|
60
67
|
PLATFORMS
|
61
68
|
ruby
|
@@ -64,7 +71,8 @@ DEPENDENCIES
|
|
64
71
|
autotest
|
65
72
|
growl-glue
|
66
73
|
heroku-rails!
|
67
|
-
rake (
|
74
|
+
rake (~> 0.9.2)
|
75
|
+
rdoc
|
68
76
|
rspec (~> 2.0)
|
69
77
|
ruby-debug
|
70
78
|
ruby-debug19
|
data/Rakefile
CHANGED
@@ -2,10 +2,10 @@ require "bundler"
|
|
2
2
|
Bundler.setup
|
3
3
|
|
4
4
|
require 'rake'
|
5
|
-
require '
|
5
|
+
require 'rubygems/package_task'
|
6
6
|
|
7
7
|
gemspec = eval(File.read('heroku-rails.gemspec'))
|
8
|
-
|
8
|
+
Gem::PackageTask.new(gemspec) do |pkg|
|
9
9
|
pkg.gem_spec = gemspec
|
10
10
|
end
|
11
11
|
|
@@ -22,17 +22,17 @@ end
|
|
22
22
|
require "rspec"
|
23
23
|
require "rspec/core/rake_task"
|
24
24
|
|
25
|
-
|
25
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
26
26
|
spec.pattern = "spec/**/*_spec.rb"
|
27
27
|
end
|
28
28
|
|
29
|
-
|
29
|
+
RSpec::Core::RakeTask.new('spec:progress') do |spec|
|
30
30
|
spec.rspec_opts = %w(--format progress)
|
31
31
|
spec.pattern = "spec/**/*_spec.rb"
|
32
32
|
end
|
33
33
|
|
34
|
-
require "
|
35
|
-
|
34
|
+
require "rdoc/task"
|
35
|
+
RDoc::Task.new do |rdoc|
|
36
36
|
rdoc.rdoc_dir = "rdoc"
|
37
37
|
rdoc.title = "Heroku Rails #{gemspec.version}"
|
38
38
|
rdoc.rdoc_files.include("README*")
|
@@ -40,4 +40,4 @@ Rake::RDocTask.new do |rdoc|
|
|
40
40
|
end
|
41
41
|
|
42
42
|
|
43
|
-
task :default => :spec
|
43
|
+
task :default => :spec
|
data/heroku-rails.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "heroku-rails"
|
3
|
-
s.version = "0.4.
|
3
|
+
s.version = "0.4.4"
|
4
4
|
|
5
5
|
s.authors = ["Elijah Miller", "Glenn Roberts", "Jacques Crocker"]
|
6
6
|
s.summary = "Deployment and configuration tools for Heroku/Rails"
|
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
"CHANGELOG"
|
32
32
|
]
|
33
33
|
|
34
|
-
s.add_runtime_dependency "heroku", ">=
|
34
|
+
s.add_runtime_dependency "heroku", ">= 2.15.0"
|
35
35
|
s.add_development_dependency "rspec", "~> 2.0"
|
36
|
+
s.add_development_dependency "rake", "~> 0.9.2"
|
36
37
|
end
|
37
|
-
|
data/lib/heroku-rails/config.rb
CHANGED
@@ -40,6 +40,14 @@ module HerokuRails
|
|
40
40
|
stacks[app_env] || stacks['all']
|
41
41
|
end
|
42
42
|
|
43
|
+
def rake_cmd(app_env)
|
44
|
+
if self.stack(app_env) =~ /cedar/i
|
45
|
+
'heroku run rake'
|
46
|
+
else
|
47
|
+
'heroku rake'
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
43
51
|
# pull out the config setting hash for a particular app environment
|
44
52
|
def config(app_env)
|
45
53
|
config = self.settings['config'] || {}
|
@@ -75,4 +83,4 @@ module HerokuRails
|
|
75
83
|
(all + (setting[app] || [])).uniq
|
76
84
|
end
|
77
85
|
end
|
78
|
-
end
|
86
|
+
end
|
data/lib/heroku-rails/runner.rb
CHANGED
@@ -8,20 +8,7 @@ module HerokuRails
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def authorize
|
11
|
-
|
12
|
-
|
13
|
-
# setup heroku username and password so we can start up a heroku client
|
14
|
-
credentials_path = File.expand_path("~/.heroku/credentials")
|
15
|
-
|
16
|
-
# read in the username,password so we can build the client
|
17
|
-
if File.exists?(credentials_path)
|
18
|
-
auth = File.read(credentials_path)
|
19
|
-
username, password = auth.split("\n")
|
20
|
-
@heroku = Heroku::Client.new(username, password)
|
21
|
-
else
|
22
|
-
puts "Heroku not set up. Run `heroku list` in order to input your credentials and try again"
|
23
|
-
exit(1)
|
24
|
-
end
|
11
|
+
@heroku ||= Heroku::Auth.client
|
25
12
|
end
|
26
13
|
|
27
14
|
# add a specific environment to the run list
|
@@ -36,7 +23,7 @@ module HerokuRails
|
|
36
23
|
|
37
24
|
# setup apps (create if necessary)
|
38
25
|
def setup_apps
|
39
|
-
authorize
|
26
|
+
authorize
|
40
27
|
|
41
28
|
# get a list of all my current apps on Heroku (so we don't create dupes)
|
42
29
|
@my_apps = @heroku.list.map{|a| a.first}
|
@@ -52,7 +39,7 @@ module HerokuRails
|
|
52
39
|
|
53
40
|
# setup the stacks for each app (migrating if necessary)
|
54
41
|
def setup_stacks
|
55
|
-
authorize
|
42
|
+
authorize
|
56
43
|
each_heroku_app do |heroku_env, app_name, repo|
|
57
44
|
# get the intended stack setting
|
58
45
|
stack = @config.stack(heroku_env)
|
@@ -70,7 +57,7 @@ module HerokuRails
|
|
70
57
|
|
71
58
|
# setup the list of collaborators
|
72
59
|
def setup_collaborators
|
73
|
-
authorize
|
60
|
+
authorize
|
74
61
|
each_heroku_app do |heroku_env, app_name, repo|
|
75
62
|
# get the remote info about the app from heroku
|
76
63
|
heroku_app_info = @heroku.info(app_name) || {}
|
@@ -110,7 +97,7 @@ module HerokuRails
|
|
110
97
|
|
111
98
|
# setup configuration
|
112
99
|
def setup_config
|
113
|
-
authorize
|
100
|
+
authorize
|
114
101
|
each_heroku_app do |heroku_env, app_name, repo|
|
115
102
|
# get the configuration that we are aiming towards
|
116
103
|
new_config = @config.config(heroku_env)
|
@@ -144,7 +131,7 @@ module HerokuRails
|
|
144
131
|
|
145
132
|
# setup the addons for heroku
|
146
133
|
def setup_addons
|
147
|
-
authorize
|
134
|
+
authorize
|
148
135
|
each_heroku_app do |heroku_env, app_name, repo|
|
149
136
|
# get the addons that we are aiming towards
|
150
137
|
addons = @config.addons(heroku_env)
|
@@ -186,7 +173,7 @@ module HerokuRails
|
|
186
173
|
|
187
174
|
# setup the domains for heroku
|
188
175
|
def setup_domains
|
189
|
-
authorize
|
176
|
+
authorize
|
190
177
|
each_heroku_app do |heroku_env, app_name, repo|
|
191
178
|
# get the domains that we are aiming towards
|
192
179
|
domains = @config.domains(heroku_env)
|
@@ -268,15 +255,13 @@ module HerokuRails
|
|
268
255
|
end
|
269
256
|
|
270
257
|
def output_destroy_commands(app)
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
puts destroy_cmd
|
276
|
-
end
|
277
|
-
puts "\n\nthese commands may cause data loss so make sure you know that these are necessary"
|
278
|
-
# clear destroy commands
|
258
|
+
puts "The #{app} had a few things removed from the heroku.yml."
|
259
|
+
puts "If they are no longer neccessary, then run the following commands:\n\n"
|
260
|
+
(@destroy_commands || []).each do |destroy_command|
|
261
|
+
puts destroy_command
|
279
262
|
end
|
263
|
+
puts "\n\nthese commands may cause data loss so make sure you know that these are necessary"
|
264
|
+
# clear destroy commands
|
280
265
|
@destroy_commands = []
|
281
266
|
end
|
282
267
|
|
@@ -285,4 +270,4 @@ module HerokuRails
|
|
285
270
|
end
|
286
271
|
|
287
272
|
end
|
288
|
-
end
|
273
|
+
end
|
data/lib/heroku/rails/tasks.rb
CHANGED
@@ -62,10 +62,12 @@ namespace :heroku do
|
|
62
62
|
Rake::Task["heroku:before_each_deploy"].reenable
|
63
63
|
Rake::Task["heroku:before_each_deploy"].invoke(app_name)
|
64
64
|
|
65
|
+
rake_cmd = HEROKU_CONFIG.rake_cmd(heroku_env)
|
66
|
+
|
65
67
|
branch = `git branch`.scan(/^\* (.*)\n/).flatten.first.to_s
|
66
68
|
if branch.present?
|
67
69
|
@git_push_arguments ||= []
|
68
|
-
system_with_echo "git push #{repo} #{@git_push_arguments.join(' ')} #{branch}:master && heroku restart --app #{app_name}"
|
70
|
+
system_with_echo "git push #{repo} #{@git_push_arguments.join(' ')} #{branch}:master && #{rake_cmd} --app #{app_name} db:migrate && heroku restart --app #{app_name}"
|
69
71
|
else
|
70
72
|
puts "Unable to determine the current git branch, please checkout the branch you'd like to deploy"
|
71
73
|
exit(1)
|
@@ -179,7 +181,8 @@ namespace :heroku do
|
|
179
181
|
desc "Migrates and restarts remote servers"
|
180
182
|
task :migrate do
|
181
183
|
HEROKU_RUNNER.each_heroku_app do |heroku_env, app_name, repo|
|
182
|
-
|
184
|
+
rake_cmd = HEROKU_CONFIG.rake_cmd(heroku_env)
|
185
|
+
system_with_echo "#{rake_cmd} --app #{app_name} db:migrate && heroku restart --app #{app_name}"
|
183
186
|
end
|
184
187
|
end
|
185
188
|
|
@@ -200,4 +203,4 @@ namespace :heroku do
|
|
200
203
|
end
|
201
204
|
end
|
202
205
|
end
|
203
|
-
end
|
206
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heroku-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,22 +11,22 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-
|
14
|
+
date: 2012-07-31 00:00:00.000000000Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: heroku
|
18
|
-
requirement: &
|
18
|
+
requirement: &70366282766080 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ! '>='
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: 2.15.0
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *70366282766080
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
|
-
requirement: &
|
29
|
+
requirement: &70366282757360 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ~>
|
@@ -34,7 +34,18 @@ dependencies:
|
|
34
34
|
version: '2.0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
37
|
+
version_requirements: *70366282757360
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: rake
|
40
|
+
requirement: &70366282754740 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.9.2
|
46
|
+
type: :development
|
47
|
+
prerelease: false
|
48
|
+
version_requirements: *70366282754740
|
38
49
|
description: Manage multiple Heroku instances/apps for a single Rails app using Rake.
|
39
50
|
It's the Capistrano for Heroku, without the suck.
|
40
51
|
email: railsjedi@gmail.com
|
@@ -81,7 +92,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
81
92
|
version: '0'
|
82
93
|
segments:
|
83
94
|
- 0
|
84
|
-
hash:
|
95
|
+
hash: 3344456155800977380
|
85
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
97
|
none: false
|
87
98
|
requirements:
|
@@ -90,10 +101,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
101
|
version: '0'
|
91
102
|
segments:
|
92
103
|
- 0
|
93
|
-
hash:
|
104
|
+
hash: 3344456155800977380
|
94
105
|
requirements: []
|
95
106
|
rubyforge_project: none
|
96
|
-
rubygems_version: 1.8.
|
107
|
+
rubygems_version: 1.8.16
|
97
108
|
signing_key:
|
98
109
|
specification_version: 3
|
99
110
|
summary: Deployment and configuration tools for Heroku/Rails
|