heroku_tool 0.9.0 → 0.9.2
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 +4 -0
- data/lib/heroku_tool/commander.rb +18 -15
- data/lib/heroku_tool/heroku_targets.rb +4 -0
- data/lib/heroku_tool/tasks/heroku.thor +24 -13
- data/lib/heroku_tool/version.rb +1 -1
- data/release_notes/__TEMPLATE__.md +4 -0
- data/release_notes/v0.9.2.md +5 -0
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4b5e399a4542b07992fbc0e896bf8b1f6fca73cb3abf66647c0c741e013ee910
|
|
4
|
+
data.tar.gz: b06141618a185a433edbb74786d6ea572a0079220bf22f4f6724b87a86e8ac30
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 54d7a075669af48e1a62a59cf077ce577114e565487b1997f0bad47edb2f26c74250a82ea9b501f058ef66ec4ec4157086ba3c96aaed66f163b24c70aa2b7096
|
|
7
|
+
data.tar.gz: ea5187d7722b88eb0cf01065ae624f65effa27457257a3e6081b22294dbc3e893a0d3d74c0cff36cbd7a38c01c51a1b68db057688c9a1fc27789fab6c8dde047
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "open3"
|
|
4
|
+
|
|
3
5
|
module HerokuTool
|
|
4
6
|
class Commander
|
|
5
7
|
# @return [HerokuTool::HerokuTargets::HerokuTarget]
|
|
@@ -65,10 +67,10 @@ module HerokuTool
|
|
|
65
67
|
end
|
|
66
68
|
|
|
67
69
|
# @return [Boolean] true if the command was successful
|
|
68
|
-
def puts_and_system(cmd)
|
|
69
|
-
puts
|
|
70
|
+
def puts_and_system(cmd, *args)
|
|
71
|
+
puts([cmd, *args].join(" "))
|
|
70
72
|
puts "-------------"
|
|
71
|
-
system_with_clean_env(cmd).tap do |result|
|
|
73
|
+
system_with_clean_env(cmd, *args).tap do |result|
|
|
72
74
|
if result
|
|
73
75
|
puts "-------------"
|
|
74
76
|
else
|
|
@@ -77,30 +79,31 @@ module HerokuTool
|
|
|
77
79
|
end
|
|
78
80
|
end
|
|
79
81
|
|
|
80
|
-
def puts_and_exec(cmd)
|
|
81
|
-
puts
|
|
82
|
-
exec_with_clean_env(cmd)
|
|
82
|
+
def puts_and_exec(cmd, *args)
|
|
83
|
+
puts([cmd, *args].join(" "))
|
|
84
|
+
exec_with_clean_env(cmd, *args)
|
|
83
85
|
end
|
|
84
86
|
|
|
85
|
-
def exec_with_clean_env(cmd)
|
|
86
|
-
if defined?(Bundler) && Bundler.respond_to?(:with_unbundled_env)
|
|
87
|
-
Bundler.with_unbundled_env {
|
|
87
|
+
def exec_with_clean_env(cmd, *args)
|
|
88
|
+
output, _status = if defined?(Bundler) && Bundler.respond_to?(:with_unbundled_env)
|
|
89
|
+
Bundler.with_unbundled_env { Open3.capture2(cmd, *args) }
|
|
88
90
|
elsif defined?(Bundler)
|
|
89
|
-
Bundler.with_clean_env {
|
|
91
|
+
Bundler.with_clean_env { Open3.capture2(cmd, *args) }
|
|
90
92
|
else
|
|
91
|
-
|
|
93
|
+
Open3.capture2(cmd, *args)
|
|
92
94
|
end
|
|
95
|
+
output
|
|
93
96
|
end
|
|
94
97
|
|
|
95
98
|
protected
|
|
96
99
|
|
|
97
|
-
def system_with_clean_env(cmd)
|
|
100
|
+
def system_with_clean_env(cmd, *args)
|
|
98
101
|
if defined?(Bundler) && Bundler.respond_to?(:with_unbundled_env)
|
|
99
|
-
Bundler.with_unbundled_env { system
|
|
102
|
+
Bundler.with_unbundled_env { system(cmd, *args) }
|
|
100
103
|
elsif defined?(Bundler)
|
|
101
|
-
Bundler.with_clean_env { system
|
|
104
|
+
Bundler.with_clean_env { system(cmd, *args) }
|
|
102
105
|
else
|
|
103
|
-
system
|
|
106
|
+
system(cmd, *args)
|
|
104
107
|
end
|
|
105
108
|
end
|
|
106
109
|
end
|
|
@@ -194,24 +194,35 @@ class Heroku < Thor
|
|
|
194
194
|
end
|
|
195
195
|
|
|
196
196
|
def notify_bugsnag_of_deploy_tracking(deploy_ref:, revision:)
|
|
197
|
-
api_key = ENV["BUGSNAG_API_KEY"]
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
197
|
+
api_key = ENV["BUGSNAG_API_KEY"].presence || "API_KEY"
|
|
198
|
+
|
|
199
|
+
app_version = deploy_ref_describe(deploy_ref)
|
|
200
|
+
json_data = {
|
|
201
|
+
apiKey: api_key,
|
|
202
|
+
appVersion: app_version,
|
|
203
|
+
sourceControl: {
|
|
204
|
+
repository: target.repository,
|
|
205
|
+
revision: revision
|
|
206
|
+
},
|
|
207
|
+
releaseStage: target.trackable_release_stage
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
args = [
|
|
211
|
+
"-H", "Content-Type: application/json",
|
|
212
|
+
"-H", "apiKey: #{api_key}",
|
|
213
|
+
"-H", "appVersion: #{app_version}",
|
|
214
|
+
"-d", json_data.to_json,
|
|
215
|
+
"https://build.bugsnag.com"
|
|
216
|
+
]
|
|
217
|
+
if api_key == "API_KEY"
|
|
206
218
|
puts "\n" + ("*" * 80) + "\n"
|
|
207
|
-
|
|
208
|
-
puts command
|
|
219
|
+
puts("curl #{args.join(" ")}")
|
|
209
220
|
puts "\n" + ("*" * 80) + "\n"
|
|
210
221
|
puts "NB: can't notify unless you specify BUGSNAG_API_KEY and rerun"
|
|
211
222
|
puts " thor heroku:deploy_tracking #{target.name} #{deploy_ref}"
|
|
212
|
-
|
|
213
|
-
puts_and_system "curl -d \"#{data}\" http://notify.bugsnag.com/deploy"
|
|
223
|
+
return
|
|
214
224
|
end
|
|
225
|
+
puts_and_system("curl", *args)
|
|
215
226
|
end
|
|
216
227
|
end
|
|
217
228
|
|
data/lib/heroku_tool/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: heroku_tool
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.9.
|
|
4
|
+
version: 0.9.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tim Diggins
|
|
@@ -150,6 +150,8 @@ files:
|
|
|
150
150
|
- lib/heroku_tool/tasks/db_drop_all_tables.rake
|
|
151
151
|
- lib/heroku_tool/tasks/heroku.thor
|
|
152
152
|
- lib/heroku_tool/version.rb
|
|
153
|
+
- release_notes/__TEMPLATE__.md
|
|
154
|
+
- release_notes/v0.9.2.md
|
|
153
155
|
- templates/Rakefile
|
|
154
156
|
- templates/heroku.thor
|
|
155
157
|
- templates/heroku_targets.yml
|
|
@@ -171,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
171
173
|
- !ruby/object:Gem::Version
|
|
172
174
|
version: '0'
|
|
173
175
|
requirements: []
|
|
174
|
-
rubygems_version:
|
|
176
|
+
rubygems_version: 4.0.11
|
|
175
177
|
specification_version: 4
|
|
176
178
|
summary: Tool for configurable one-shot deployment and db managment with heroku and
|
|
177
179
|
rails
|