eb_deployer 0.6.0 → 0.6.1
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/README.md +11 -2
- data/lib/eb_deployer/config_loader.rb +11 -11
- data/lib/eb_deployer/version.rb +1 -1
- data/test/config_loader_test.rb +13 -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: a339b19fefcb73b8a72dc75be71acdd5c687e51d
|
4
|
+
data.tar.gz: 20ab402493ce588c41f77193d65ff54bad160f05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 029d124d285bcf266aa87313399ad9eb6badcf08a4f305b89ae0811dbbe7ec9dc29c8896f8965108fca94aea22b028cba32f175c80f93f9b276f86a0fee38a50
|
7
|
+
data.tar.gz: 75e13ca3c1f39f06a81b0db7be58b1d2da79852aeceb4d06af9ad5d5379d90696534c0168e6382cf2ecdd320ce00a210c7d5bd26876492a5ae27ea19b5bd941d
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# EbDeployer [](https://snap-ci.com/ThoughtWorksStudios/eb_deployer/branch/master) [](https://travis-ci.org/ThoughtWorksStudios/eb_deployer)
|
1
|
+
# EbDeployer [](https://snap-ci.com/ThoughtWorksStudios/eb_deployer/branch/master) [](https://travis-ci.org/ThoughtWorksStudios/eb_deployer) [](http://badge.fury.io/rb/eb_deployer)
|
2
2
|
|
3
3
|
[Built with :yellow_heart: and :coffee: in San Francisco](http://www.thoughtworks.com/mingle/team/)
|
4
4
|
|
@@ -91,6 +91,16 @@ Later tutorials coming soon will cover
|
|
91
91
|
|
92
92
|
Take a look at code if you can not wait for the documentation.
|
93
93
|
|
94
|
+
### eb_deploy.yml configuration file
|
95
|
+
|
96
|
+
Like Rails database.yml file, EbDeployer will read eb_deploy.yml file as ERB template file. So you can trade it as standard ERB template file, and substitute Ruby script.
|
97
|
+
|
98
|
+
By default, EbDeployer provides the following methods:
|
99
|
+
|
100
|
+
1. random_hash: it basically is `SecureRandom.hex[0..9]`
|
101
|
+
2. package_digest: it is your eb package file digest
|
102
|
+
3. environment: environment name you passed in when executing eb_deploy script.
|
103
|
+
|
94
104
|
## More
|
95
105
|
|
96
106
|
[Automated zero downtime deployment to AWS Elastic Beanstalk for Rails with EbDeployer](http://helabs.com/blog/2015/05/19/automated-zero-downtime-deployment-to-aws-elastic-beanstalk-for-rails-with-eb-deployer/?utm_content=buffer12098&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer)
|
@@ -117,4 +127,3 @@ AWS re:Invent 2013: [slideshare](http://www.slideshare.net/AmazonWebServices/aws
|
|
117
127
|
|
118
128
|
|
119
129
|
[](https://bitdeli.com/free "Bitdeli Badge")
|
120
|
-
|
@@ -7,24 +7,24 @@ module EbDeployer
|
|
7
7
|
include Utils
|
8
8
|
|
9
9
|
class EvalBinding
|
10
|
-
|
10
|
+
attr_reader :environment, :package_digest
|
11
|
+
def initialize(package_digest, env)
|
11
12
|
@package_digest = package_digest
|
13
|
+
@environment = env
|
12
14
|
end
|
13
15
|
|
14
16
|
def random_hash
|
15
17
|
SecureRandom.hex[0..9]
|
16
18
|
end
|
17
|
-
|
18
|
-
def package_digest
|
19
|
-
@package_digest
|
20
|
-
end
|
21
19
|
end
|
22
20
|
|
23
21
|
def load(options)
|
24
22
|
options = options.dup
|
25
23
|
package_digest = package_digest(options[:package])
|
26
24
|
config_file = options.delete(:config_file)
|
27
|
-
|
25
|
+
|
26
|
+
env = options[:environment]
|
27
|
+
config_settings = load_config_settings(config_file, package_digest, env)
|
28
28
|
|
29
29
|
app_name = config_settings[:application]
|
30
30
|
|
@@ -32,7 +32,6 @@ module EbDeployer
|
|
32
32
|
common_settings[:version_label] ||= package_digest
|
33
33
|
|
34
34
|
envs = config_settings[:environments]
|
35
|
-
env = options[:environment]
|
36
35
|
raise "Environment #{env} is not defined in #{config_file}" unless envs.has_key?(env)
|
37
36
|
env_settings = symbolize_keys(envs[env] || {})
|
38
37
|
env_option_settings = env_settings.delete(:option_settings) || []
|
@@ -46,13 +45,14 @@ module EbDeployer
|
|
46
45
|
|
47
46
|
private
|
48
47
|
|
49
|
-
def load_config_settings(config_file, package_digest)
|
50
|
-
yaml = ERB.new(File.read(config_file)).
|
48
|
+
def load_config_settings(config_file, package_digest, env)
|
49
|
+
yaml = ERB.new(File.read(config_file)).
|
50
|
+
result(eval_binding(package_digest, env))
|
51
51
|
symbolize_keys(YAML.load(yaml))
|
52
52
|
end
|
53
53
|
|
54
|
-
def eval_binding(package_digest)
|
55
|
-
EvalBinding.new(package_digest).instance_eval { binding }
|
54
|
+
def eval_binding(package_digest, env)
|
55
|
+
EvalBinding.new(package_digest, env).instance_eval { binding }
|
56
56
|
end
|
57
57
|
|
58
58
|
def package_digest(package)
|
data/lib/eb_deployer/version.rb
CHANGED
data/test/config_loader_test.rb
CHANGED
@@ -173,6 +173,19 @@ YAML
|
|
173
173
|
'value' => '0'}], config[:inactive_settings])
|
174
174
|
end
|
175
175
|
|
176
|
+
def test_access_environment_name_in_config_yml_file
|
177
|
+
config = @loader.load(generate_input(<<-YAML, :environment => 'dev'))
|
178
|
+
application: myapp
|
179
|
+
common:
|
180
|
+
resources:
|
181
|
+
inputs:
|
182
|
+
env: <%= environment %>
|
183
|
+
environments:
|
184
|
+
dev:
|
185
|
+
production:
|
186
|
+
YAML
|
187
|
+
assert_equal('dev', config[:resources]['inputs']['env'])
|
188
|
+
end
|
176
189
|
|
177
190
|
private
|
178
191
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eb_deployer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- wpc
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-07-
|
12
|
+
date: 2015-07-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aws-sdk
|