hanzo 0.6.2 → 1.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 +5 -5
- data/.rubocop.yml +8 -1
- data/README.md +131 -28
- data/bin/hanzo +1 -1
- data/hanzo.gemspec +5 -5
- data/lib/hanzo/cli.rb +8 -4
- data/lib/hanzo/modules/config.rb +1 -1
- data/lib/hanzo/modules/console.rb +57 -0
- data/lib/hanzo/modules/deploy.rb +1 -1
- data/lib/hanzo/modules/install.rb +1 -1
- data/lib/hanzo/modules/installers/labs.rb +1 -1
- data/lib/hanzo/modules/installers/remotes.rb +1 -1
- data/lib/hanzo/version.rb +1 -1
- data/lib/hanzo.rb +6 -6
- data/spec/cli/deploy_spec.rb +4 -4
- data/spec/cli/install_spec.rb +3 -3
- data/spec/spec_helper.rb +1 -1
- metadata +23 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 290405d45a84ebf4e33e50cb8cdbcbe24c11841073a21739afd05c368f36b1d3
|
4
|
+
data.tar.gz: ad08e638c4b8cf91620982fb662645bc096c8176a58b2270fc015b349a2c4704
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7388b062c22e59b25eb6fde535943aa71817c22de2e85dac8b0fb579b85d72183b32856262818e896e61a5047d22912a70b146a295e45a59bc90d0e53c8048b
|
7
|
+
data.tar.gz: 0d30be502353ae1c5de32f547d5ddcf1e8c3fab1fb6bac6bf8de3b359750a21a388b36039e3e3b738287e982bb1c1a8e70c3ca7afe6bae41af914ce2be794e5b
|
data/.rubocop.yml
CHANGED
@@ -4,6 +4,9 @@ Documentation:
|
|
4
4
|
Encoding:
|
5
5
|
Enabled: false
|
6
6
|
|
7
|
+
BlockLength:
|
8
|
+
Max: 100
|
9
|
+
|
7
10
|
LineLength:
|
8
11
|
Max: 200
|
9
12
|
|
@@ -17,7 +20,7 @@ IfUnlessModifier:
|
|
17
20
|
Enabled: false
|
18
21
|
|
19
22
|
CaseIndentation:
|
20
|
-
|
23
|
+
EnforcedStyle: case
|
21
24
|
IndentOneStep: true
|
22
25
|
|
23
26
|
MethodLength:
|
@@ -56,3 +59,7 @@ DoubleNegation:
|
|
56
59
|
|
57
60
|
TrivialAccessors:
|
58
61
|
ExactNameMatch: true
|
62
|
+
|
63
|
+
Style/PercentLiteralDelimiters:
|
64
|
+
PreferredDelimiters:
|
65
|
+
'%w': '()'
|
data/README.md
CHANGED
@@ -3,10 +3,9 @@
|
|
3
3
|
<img src="http://i.imgur.com/RZbJy1u.png" alt="Hanzo" />
|
4
4
|
</a>
|
5
5
|
<br />
|
6
|
-
Hanzo is a sharp tool to handle
|
6
|
+
Hanzo is a sharp tool to handle deploying an application on Heroku on multiple environments.
|
7
7
|
<br /><br />
|
8
8
|
<a href="https://rubygems.org/gems/hanzo"><img src="http://img.shields.io/gem/v/hanzo.svg" /></a>
|
9
|
-
<a href="https://codeclimate.com/github/mirego/hanzo"><img src="http://img.shields.io/codeclimate/github/mirego/hanzo.svg" /></a>
|
10
9
|
<a href='https://gemnasium.com/mirego/hanzo'><img src="http://img.shields.io/gemnasium/mirego/hanzo.svg" /></a>
|
11
10
|
<a href="https://travis-ci.org/mirego/hanzo"><img src="http://img.shields.io/travis/mirego/hanzo.svg" /></a>
|
12
11
|
</p>
|
@@ -23,58 +22,59 @@ gem 'hanzo'
|
|
23
22
|
|
24
23
|
## Usage
|
25
24
|
|
26
|
-
Create
|
25
|
+
Create a `.hanzo.yml` file at the root of your app that will contain a map of
|
27
26
|
remotes, with the remote as the key and the Heroku application name as the value.
|
28
27
|
|
29
|
-
You can also specify commands that
|
30
|
-
successful
|
31
|
-
|
28
|
+
You can also use `after_deploy` to specify commands that will be run on the application
|
29
|
+
after a successful deployment. Hanzo will prompt you before running each command,
|
30
|
+
then use `heroku run` to execute it. The application is restarted afterwards.
|
32
31
|
|
33
32
|
```yaml
|
34
33
|
remotes:
|
35
34
|
qa: heroku-app-name-qa
|
36
35
|
staging: heroku-app-name-staging
|
37
36
|
production: heroku-app-name-production
|
37
|
+
|
38
38
|
after_deploy:
|
39
39
|
- rake db:migrate
|
40
|
+
|
41
|
+
console: rails console
|
40
42
|
```
|
41
43
|
|
42
|
-
###
|
44
|
+
### `hanzo install`
|
43
45
|
|
44
|
-
|
45
|
-
|
46
|
+
#### Remotes
|
47
|
+
|
48
|
+
Whenever you add new remotes to your `.hanzo.yml` file, you'll have to install
|
49
|
+
them locally by running `hanzo install remotes`.
|
46
50
|
|
47
51
|
```bash
|
48
|
-
|
52
|
+
$ hanzo install remotes
|
53
|
+
```
|
49
54
|
|
55
|
+
```
|
50
56
|
-----> Creating git remotes
|
51
57
|
Adding qa
|
52
58
|
git remote rm qa 2>&1 > /dev/null
|
53
|
-
git remote add qa git
|
59
|
+
git remote add qa https://git.heroku.com/heroku-app-name-qa.git
|
54
60
|
Adding staging
|
55
61
|
git remote rm staging 2>&1 > /dev/null
|
56
|
-
git remote add staging git
|
62
|
+
git remote add staging https://git.heroku.com/heroku-app-name-staging.git
|
57
63
|
Adding production
|
58
64
|
git remote rm production 2>&1 > /dev/null
|
59
|
-
git remote add production git
|
65
|
+
git remote add production https://git.heroku.com/heroku-app-name-production.git
|
60
66
|
```
|
61
67
|
|
62
|
-
|
68
|
+
#### Labs
|
63
69
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
-----> Branch to deploy: |HEAD|
|
68
|
-
```
|
69
|
-
|
70
|
-
### Install labs
|
71
|
-
|
72
|
-
Once all your remotes are installed, you might want to enable some
|
73
|
-
Heroku labs feature for all of them.
|
70
|
+
Once all your remotes are installed, you might want to enable Heroku labs
|
71
|
+
features:
|
74
72
|
|
75
73
|
```bash
|
76
|
-
|
74
|
+
$ hanzo install labs
|
75
|
+
```
|
77
76
|
|
77
|
+
```
|
78
78
|
-----> Activating Heroku Labs
|
79
79
|
Add preboot? yes
|
80
80
|
- Enabled for qa
|
@@ -86,12 +86,115 @@ Heroku labs feature for all of them.
|
|
86
86
|
- Enabled for production
|
87
87
|
```
|
88
88
|
|
89
|
+
### `hanzo deploy`
|
90
|
+
|
91
|
+
You can deploy to a specific remote using `hanzo deploy <remote>` and an
|
92
|
+
optional reference to deploy. If no reference is specified, Hanzo will prompt
|
93
|
+
for one (with `HEAD` as the default value).
|
94
|
+
|
95
|
+
```bash
|
96
|
+
$ hanzo deploy qa release/qa
|
97
|
+
```
|
98
|
+
|
99
|
+
```
|
100
|
+
git push -f qa release/qa:master
|
101
|
+
|
102
|
+
…
|
103
|
+
|
104
|
+
remote: Verifying deploy... done.
|
105
|
+
To heroku.com:heroku-app-name-qa.git
|
106
|
+
550c719..27e3538 release/qa -> master
|
107
|
+
|
108
|
+
Run `rake db:migrate` on qa? y
|
109
|
+
heroku run rake db:migrate --remote qa
|
110
|
+
|
111
|
+
Running rake db:migrate on heroku-app-name-qa...
|
112
|
+
15:45:26.380 [info] Already up
|
113
|
+
heroku ps:restart --remote qa
|
114
|
+
|
115
|
+
Restarting dynos on heroku-app-name-qa...
|
116
|
+
```
|
117
|
+
|
118
|
+
### `hanzo diff`
|
119
|
+
|
120
|
+
You can use `hanzo diff <remote>` to compare the current repository state to the code
|
121
|
+
that is currently deployed in the specified remote.
|
122
|
+
|
123
|
+
Warning: This uses Heroku’s git repository references so its output might be
|
124
|
+
wrong if the application was rollbacked.
|
125
|
+
|
126
|
+
```
|
127
|
+
$ hanzo diff qa
|
128
|
+
git remote update qa && git diff qa/master...HEAD
|
129
|
+
```
|
130
|
+
|
131
|
+
```diff
|
132
|
+
────────────────────────────────────────────────────────────────────────────────────────────
|
133
|
+
-- a/lib/my_app/router.ex
|
134
|
+
++ b/lib/my_app/router.ex
|
135
|
+
────────────────────────────────────────────────────────────────────────────────────────────
|
136
|
+
@@ -30,6 +30,8 @@ defmodule MyApp.Router do
|
137
|
+
plug(:fetch_flash)
|
138
|
+
+ plug(:protect_from_forgery)
|
139
|
+
+ plug(:put_secure_browser_headers)
|
140
|
+
```
|
141
|
+
|
142
|
+
### `hanzo config`
|
143
|
+
|
144
|
+
#### Compare
|
145
|
+
|
146
|
+
You can use `hanzo config compare` to find out which environment variables are
|
147
|
+
present in only some of your environments.
|
148
|
+
|
149
|
+
```
|
150
|
+
$ hanzo config compare
|
151
|
+
```
|
152
|
+
|
153
|
+
```
|
154
|
+
-----> Fetching environment variables
|
155
|
+
heroku config -r qa
|
156
|
+
heroku config -r staging
|
157
|
+
heroku config -r production
|
158
|
+
|
159
|
+
-----> Comparing environment variables
|
160
|
+
Missing variables in qa
|
161
|
+
- ASSET_HOST
|
162
|
+
Missing variables in staging
|
163
|
+
- SMTP_PASSWORD
|
164
|
+
- SMTP_PORT
|
165
|
+
- SMTP_SERVER
|
166
|
+
- SMTP_USER
|
167
|
+
Missing variables in production
|
168
|
+
- SMTP_PASSWORD
|
169
|
+
- SMTP_PORT
|
170
|
+
- SMTP_SERVER
|
171
|
+
- SMTP_USER
|
172
|
+
```
|
173
|
+
|
174
|
+
### `hanzo console`
|
175
|
+
|
176
|
+
You can define a `console` command in `.hanzo.yml` to quickly spawn a console
|
177
|
+
process using `heroku run`.
|
178
|
+
|
179
|
+
```bash
|
180
|
+
$ hanzo console qa
|
181
|
+
```
|
182
|
+
|
183
|
+
```
|
184
|
+
Running iex -S mix on heroku-app-name-qa... up
|
185
|
+
> |
|
186
|
+
```
|
187
|
+
|
89
188
|
## License
|
90
189
|
|
91
|
-
`Hanzo` is © 2013-
|
190
|
+
`Hanzo` is © 2013-2018 [Mirego](http://www.mirego.com) and may be freely
|
191
|
+
distributed under the [New BSD license](http://opensource.org/licenses/BSD-3-Clause). See the
|
192
|
+
[`LICENSE.md`](https://github.com/mirego/hanzo/blob/master/LICENSE.md) file.
|
92
193
|
|
93
194
|
## About Mirego
|
94
195
|
|
95
|
-
[Mirego](
|
196
|
+
[Mirego](https://www.mirego.com) is a team of passionate people who believe that
|
197
|
+
work is a place where you can innovate and have fun. We're a team of [talented people](https://life.mirego.com)
|
198
|
+
who imagine and build beautiful Web and mobile applications. We come together to share ideas and [change the world](http://mirego.org).
|
96
199
|
|
97
|
-
We also [love open-source software](
|
200
|
+
We also [love open-source software](https://open.mirego.com) and we try to give back to the community as much as we can.
|
data/bin/hanzo
CHANGED
data/hanzo.gemspec
CHANGED
@@ -7,10 +7,10 @@ require 'hanzo/version'
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = 'hanzo'
|
9
9
|
spec.version = Hanzo::VERSION
|
10
|
-
spec.authors = ['Samuel Garneau']
|
11
|
-
spec.email = ['sgarneau@mirego.com']
|
12
|
-
spec.description = 'Hanzo is a tool to handle
|
13
|
-
spec.summary = 'Hanzo is a tool to handle
|
10
|
+
spec.authors = ['Samuel Garneau', 'Rémi Prévost']
|
11
|
+
spec.email = ['sgarneau@mirego.com', 'rprevost@mirego.com']
|
12
|
+
spec.description = 'Hanzo is a sharp tool to handle deploying an application on Heroku on multiple environments.'
|
13
|
+
spec.summary = 'Hanzo is a sharp tool to handle deploying an application on Heroku on multiple environments.'
|
14
14
|
spec.homepage = 'https://github.com/mirego/hanzo'
|
15
15
|
spec.license = 'BSD 3-Clause'
|
16
16
|
|
@@ -21,9 +21,9 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
23
23
|
spec.add_development_dependency 'phare', '~> 0.6'
|
24
|
-
spec.add_development_dependency 'rubocop', '~> 0.24'
|
25
24
|
spec.add_development_dependency 'rake'
|
26
25
|
spec.add_development_dependency 'rspec', '~> 3.1'
|
26
|
+
spec.add_development_dependency 'rubocop', '~> 0.49'
|
27
27
|
|
28
28
|
spec.add_dependency 'highline', '>= 1.6.19'
|
29
29
|
end
|
data/lib/hanzo/cli.rb
CHANGED
@@ -2,11 +2,12 @@ require 'hanzo/modules/deploy'
|
|
2
2
|
require 'hanzo/modules/diff'
|
3
3
|
require 'hanzo/modules/install'
|
4
4
|
require 'hanzo/modules/config'
|
5
|
+
require 'hanzo/modules/console'
|
5
6
|
|
6
7
|
module Hanzo
|
7
8
|
class CLI < Base
|
8
9
|
def run
|
9
|
-
@options.parse!(@args) if @
|
10
|
+
@options.parse!(@args) if @options.respond_to? :parse!
|
10
11
|
puts @options unless @options.to_s == "Usage: hanzo [options]\n"
|
11
12
|
end
|
12
13
|
|
@@ -17,7 +18,10 @@ module Hanzo
|
|
17
18
|
end
|
18
19
|
|
19
20
|
def initialize_cli
|
20
|
-
|
21
|
+
@options.on('-v', '--version', 'Print version') do
|
22
|
+
puts "Hanzo #{Hanzo::VERSION}"
|
23
|
+
exit
|
24
|
+
end
|
21
25
|
|
22
26
|
begin
|
23
27
|
@options = Hanzo.const_get(@app.capitalize).new(@args).options
|
@@ -35,11 +39,11 @@ module Hanzo
|
|
35
39
|
diff - Show the diff between HEAD and the current release
|
36
40
|
install - Install Hanzo configuration
|
37
41
|
config - Manage Heroku configuration variables
|
42
|
+
console - Run a console command
|
38
43
|
|
39
44
|
Options:
|
40
45
|
BANNER
|
41
|
-
@options.on('-h', '--help', 'You\'re looking at it.')
|
42
|
-
@options.on('-v', '--version', 'Print version') { puts "Hanzo #{Hanzo::VERSION}" }
|
46
|
+
@options.on('-h', '--help', 'You\'re looking at it.')
|
43
47
|
end
|
44
48
|
end
|
45
49
|
end
|
data/lib/hanzo/modules/config.rb
CHANGED
@@ -52,7 +52,7 @@ module Hanzo
|
|
52
52
|
@variables.each_pair do |env, variables|
|
53
53
|
missing_variables = all_variables - variables
|
54
54
|
Hanzo.print "Missing variables in #{env}", :yellow
|
55
|
-
Hanzo.print
|
55
|
+
Hanzo.print(missing_variables.map { |v| "- #{v}" })
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Hanzo
|
2
|
+
class Console < Base
|
3
|
+
# Classes
|
4
|
+
UnknownEnvironment = Class.new(StandardError)
|
5
|
+
UninstalledEnvironment = Class.new(StandardError)
|
6
|
+
UnknownCommand = Class.new(StandardError)
|
7
|
+
|
8
|
+
def initialize_variables
|
9
|
+
@env = extract_argument(1)
|
10
|
+
end
|
11
|
+
|
12
|
+
def initialize_cli
|
13
|
+
initialize_help && return if @env.nil?
|
14
|
+
|
15
|
+
validate_environment_existence!
|
16
|
+
|
17
|
+
console
|
18
|
+
rescue UnknownCommand
|
19
|
+
Hanzo.unindent_print 'A “console” command is needed in `.hanzo.yml`', :red
|
20
|
+
rescue UnknownEnvironment
|
21
|
+
Hanzo.unindent_print "Environment `#{@env}` doesn't exist. Add it to .hanzo.yml and run:\n hanzo install remotes", :red
|
22
|
+
Hanzo.unindent_print "\nFor more information, read https://github.com/mirego/hanzo#remotes", :red
|
23
|
+
rescue UninstalledEnvironment
|
24
|
+
Hanzo.unindent_print "Environment `#{@env}` has been found in your .hanzo.yml file. Before using it, you must install it:\n hanzo install remotes", :red
|
25
|
+
end
|
26
|
+
|
27
|
+
def console
|
28
|
+
command = Hanzo.config['console']
|
29
|
+
raise UnknownCommand unless command
|
30
|
+
|
31
|
+
Hanzo.run "heroku run --remote #{@env} #{command}"
|
32
|
+
end
|
33
|
+
|
34
|
+
protected
|
35
|
+
|
36
|
+
def initialize_help
|
37
|
+
@options.banner = <<-BANNER.unindent
|
38
|
+
Usage: hanzo console ENVIRONMENT
|
39
|
+
|
40
|
+
Available environments
|
41
|
+
BANNER
|
42
|
+
|
43
|
+
Hanzo::Installers::Remotes.environments.each do |env|
|
44
|
+
@options.banner << " - #{env.first}\n"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def validate_environment_existence!
|
49
|
+
raise UnknownEnvironment unless fetcher.exist?
|
50
|
+
raise UninstalledEnvironment unless fetcher.installed?
|
51
|
+
end
|
52
|
+
|
53
|
+
def fetcher
|
54
|
+
@fetcher ||= Hanzo::Fetchers::Environment.new(@env)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/lib/hanzo/modules/deploy.rb
CHANGED
@@ -18,7 +18,7 @@ module Hanzo
|
|
18
18
|
deploy && run_after_deploy_commands
|
19
19
|
rescue UnknownEnvironment
|
20
20
|
Hanzo.unindent_print "Environment `#{@env}` doesn't exist. Add it to .hanzo.yml and run:\n hanzo install remotes", :red
|
21
|
-
Hanzo.unindent_print "\nFor more information, read https://github.com/mirego/hanzo#
|
21
|
+
Hanzo.unindent_print "\nFor more information, read https://github.com/mirego/hanzo#remotes", :red
|
22
22
|
rescue UninstalledEnvironment
|
23
23
|
Hanzo.unindent_print "Environment `#{@env}` has been found in your .hanzo.yml file. Before using it, you must install it:\n hanzo install remotes", :red
|
24
24
|
end
|
@@ -4,7 +4,7 @@ module Hanzo
|
|
4
4
|
def install_labs
|
5
5
|
Hanzo.title('Activating Heroku Labs')
|
6
6
|
|
7
|
-
Hanzo::Heroku.available_labs.
|
7
|
+
Hanzo::Heroku.available_labs.each_key do |name|
|
8
8
|
next unless Hanzo.agree("Add #{name}?")
|
9
9
|
|
10
10
|
Hanzo::Installers::Remotes.environments.each_pair do |env, _|
|
@@ -12,7 +12,7 @@ module Hanzo
|
|
12
12
|
def self.add_remote(app, env)
|
13
13
|
Hanzo.print "Adding #{env}"
|
14
14
|
Hanzo.run "git remote rm #{env} 2>&1 > /dev/null"
|
15
|
-
Hanzo.run "git remote add #{env} git
|
15
|
+
Hanzo.run "git remote add #{env} https://git.heroku.com/#{app}.git"
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.environments
|
data/lib/hanzo/version.rb
CHANGED
data/lib/hanzo.rb
CHANGED
@@ -15,11 +15,11 @@ module Hanzo
|
|
15
15
|
output = true
|
16
16
|
|
17
17
|
_run do
|
18
|
-
if fetch_output
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
output = if fetch_output
|
19
|
+
`#{command}`
|
20
|
+
else
|
21
|
+
system(command)
|
22
|
+
end
|
23
23
|
end
|
24
24
|
|
25
25
|
output
|
@@ -68,6 +68,6 @@ end
|
|
68
68
|
|
69
69
|
class String
|
70
70
|
def unindent
|
71
|
-
gsub(/^#{scan(/^\s*/).min_by
|
71
|
+
gsub(/^#{scan(/^\s*/).min_by(&:length)}/, '')
|
72
72
|
end
|
73
73
|
end
|
data/spec/cli/deploy_spec.rb
CHANGED
@@ -2,9 +2,9 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Hanzo::CLI do
|
4
4
|
describe :deploy do
|
5
|
-
let(:deploy!) { Hanzo::CLI.new(
|
5
|
+
let(:deploy!) { Hanzo::CLI.new(%w(deploy production)) }
|
6
6
|
let(:deploy_question) { 'Branch to deploy in production:' }
|
7
|
-
let(:deploy_command) {
|
7
|
+
let(:deploy_command) { 'git push -f production 1.0.0:master' }
|
8
8
|
|
9
9
|
before do
|
10
10
|
expect(Hanzo::Installers::Remotes).to receive(:environments).and_return(['production'])
|
@@ -12,8 +12,8 @@ describe Hanzo::CLI do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
context 'deploy with specific branch' do
|
15
|
-
let(:deploy!) { Hanzo::CLI.new(
|
16
|
-
let(:deploy_command) {
|
15
|
+
let(:deploy!) { Hanzo::CLI.new(%w(deploy production 2.0.0)) }
|
16
|
+
let(:deploy_command) { 'git push -f production 2.0.0:master' }
|
17
17
|
let(:deploy_result) { true }
|
18
18
|
let(:config) { {} }
|
19
19
|
|
data/spec/cli/install_spec.rb
CHANGED
@@ -18,10 +18,10 @@ describe Hanzo::CLI do
|
|
18
18
|
expect(Hanzo::Heroku).to receive(:available_labs).and_return(available_labs)
|
19
19
|
expect(Hanzo).to receive(:title).with(labs_title)
|
20
20
|
|
21
|
-
available_labs.
|
21
|
+
available_labs.each_key do |name|
|
22
22
|
expect(Hanzo).to receive(:agree).with("Add #{name}?").and_return(true)
|
23
23
|
|
24
|
-
heroku_remotes.
|
24
|
+
heroku_remotes.each_key do |env|
|
25
25
|
expect(Hanzo).to receive(:run).with("#{enable_labs_cmd} #{name} --remote #{env}")
|
26
26
|
expect(Hanzo).to receive(:print).with("#{enable_labs_info} #{env}")
|
27
27
|
end
|
@@ -46,7 +46,7 @@ describe Hanzo::CLI do
|
|
46
46
|
heroku_remotes.each do |env, app|
|
47
47
|
expect(Hanzo).to receive(:print).with("Adding #{env}")
|
48
48
|
expect(Hanzo).to receive(:run).with("git remote rm #{env} 2>&1 > /dev/null")
|
49
|
-
expect(Hanzo).to receive(:run).with("git remote add #{env} git
|
49
|
+
expect(Hanzo).to receive(:run).with("git remote add #{env} https://git.heroku.com/#{app}.git")
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanzo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Garneau
|
8
|
+
- Rémi Prévost
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2021-10-07 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
@@ -39,47 +40,47 @@ dependencies:
|
|
39
40
|
- !ruby/object:Gem::Version
|
40
41
|
version: '0.6'
|
41
42
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
43
|
+
name: rake
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
44
45
|
requirements:
|
45
|
-
- - "
|
46
|
+
- - ">="
|
46
47
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0
|
48
|
+
version: '0'
|
48
49
|
type: :development
|
49
50
|
prerelease: false
|
50
51
|
version_requirements: !ruby/object:Gem::Requirement
|
51
52
|
requirements:
|
52
|
-
- - "
|
53
|
+
- - ">="
|
53
54
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0
|
55
|
+
version: '0'
|
55
56
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
57
|
+
name: rspec
|
57
58
|
requirement: !ruby/object:Gem::Requirement
|
58
59
|
requirements:
|
59
|
-
- - "
|
60
|
+
- - "~>"
|
60
61
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
62
|
+
version: '3.1'
|
62
63
|
type: :development
|
63
64
|
prerelease: false
|
64
65
|
version_requirements: !ruby/object:Gem::Requirement
|
65
66
|
requirements:
|
66
|
-
- - "
|
67
|
+
- - "~>"
|
67
68
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
69
|
+
version: '3.1'
|
69
70
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
71
|
+
name: rubocop
|
71
72
|
requirement: !ruby/object:Gem::Requirement
|
72
73
|
requirements:
|
73
74
|
- - "~>"
|
74
75
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
76
|
+
version: '0.49'
|
76
77
|
type: :development
|
77
78
|
prerelease: false
|
78
79
|
version_requirements: !ruby/object:Gem::Requirement
|
79
80
|
requirements:
|
80
81
|
- - "~>"
|
81
82
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
83
|
+
version: '0.49'
|
83
84
|
- !ruby/object:Gem::Dependency
|
84
85
|
name: highline
|
85
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,9 +95,11 @@ dependencies:
|
|
94
95
|
- - ">="
|
95
96
|
- !ruby/object:Gem::Version
|
96
97
|
version: 1.6.19
|
97
|
-
description: Hanzo is a tool to handle
|
98
|
+
description: Hanzo is a sharp tool to handle deploying an application on Heroku on
|
99
|
+
multiple environments.
|
98
100
|
email:
|
99
101
|
- sgarneau@mirego.com
|
102
|
+
- rprevost@mirego.com
|
100
103
|
executables:
|
101
104
|
- hanzo
|
102
105
|
extensions: []
|
@@ -118,6 +121,7 @@ files:
|
|
118
121
|
- lib/hanzo/fetchers/environment.rb
|
119
122
|
- lib/hanzo/heroku.rb
|
120
123
|
- lib/hanzo/modules/config.rb
|
124
|
+
- lib/hanzo/modules/console.rb
|
121
125
|
- lib/hanzo/modules/deploy.rb
|
122
126
|
- lib/hanzo/modules/diff.rb
|
123
127
|
- lib/hanzo/modules/install.rb
|
@@ -149,11 +153,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
153
|
- !ruby/object:Gem::Version
|
150
154
|
version: '0'
|
151
155
|
requirements: []
|
152
|
-
|
153
|
-
rubygems_version: 2.6.8
|
156
|
+
rubygems_version: 3.0.3
|
154
157
|
signing_key:
|
155
158
|
specification_version: 4
|
156
|
-
summary: Hanzo is a tool to handle
|
159
|
+
summary: Hanzo is a sharp tool to handle deploying an application on Heroku on multiple
|
160
|
+
environments.
|
157
161
|
test_files:
|
158
162
|
- spec/cli/config_spec.rb
|
159
163
|
- spec/cli/deploy_spec.rb
|