eb_deployer 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -11,12 +11,19 @@ module EbDeployer
11
11
  def create_version(version_label, package)
12
12
  create_application_if_not_exists
13
13
 
14
- source_bundle = if File.extname(package) == '.yml'
15
- YAML.load(File.read(package))
14
+ source_bundle = if File.exists?(package)
15
+ if File.extname(package) == '.yml'
16
+ YAML.load(File.read(package))
17
+ else
18
+ package = Package.new(package, @bucket + ".packages", @s3_driver)
19
+ package.upload
20
+ package.source_bundle
21
+ end
22
+ elsif package =~ /:/
23
+ bucket, obj_key = package.split(':')
24
+ {'s3_bucket' => bucket, 's3_key' => obj_key}
16
25
  else
17
- package = Package.new(package, @bucket + ".packages", @s3_driver)
18
- package.upload
19
- package.source_bundle
26
+ raise "Unknown package file/format: #{package.inspect}"
20
27
  end
21
28
 
22
29
  unless @eb_driver.application_version_labels(@name).include?(version_label)
@@ -1,3 +1,3 @@
1
1
  module EbDeployer
2
- VERSION = "0.3.4"
2
+ VERSION = "0.3.5"
3
3
  end
data/lib/eb_deployer.rb CHANGED
@@ -270,7 +270,7 @@ module EbDeployer
270
270
  def self.cli_parser(options)
271
271
  OptionParser.new do |opts|
272
272
  opts.banner = "Usage: eb_deployer [options]"
273
- opts.on("-p", "--package [FILE]", "Package to deploy, for example a war file for java application or yaml specification for package location on s3, see -h for format") do |v|
273
+ opts.on("-p", "--package [FILE/S3_OBJECT]", "Package to deploy, can be a war file for java application, or yaml specification for package location on S3, or a S3 object with bucket name saperated by colon, e.g. bucket_name:key_name") do |v|
274
274
  options[:package] = v
275
275
  end
276
276
 
@@ -309,6 +309,7 @@ module EbDeployer
309
309
  opts.on("-h", "--help", "help") do
310
310
  puts opts
311
311
  puts ""
312
+ puts "S3 object package format: s3_bucket_name:s3_object_key"
312
313
  puts "YAML package file format:"
313
314
  puts "s3_bucket: <bucket_name>"
314
315
  puts "s3_key: <object_path>"
data/test/deploy_test.rb CHANGED
@@ -419,6 +419,18 @@ class DeployTest < MiniTest::Unit::TestCase
419
419
  end
420
420
  end
421
421
 
422
+ def test_pass_s3_object_name_as_package_file
423
+ package_name = 'test-bucket:test-mingle.war'
424
+
425
+ deploy(:package => package_name,
426
+ :application => 'simple',
427
+ :environment => "production",
428
+ :version_label => 1)
429
+
430
+ assert @eb_driver.application_exists?('simple')
431
+ last_version = @eb_driver.application_versions('simple').last
432
+ assert_equal({'s3_bucket' => 'test-bucket', 's3_key' => 'test-mingle.war'}, last_version[:source_bundle])
433
+ end
422
434
 
423
435
  private
424
436
 
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eb_deployer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - wpc
@@ -9,20 +10,22 @@ authors:
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2014-03-07 00:00:00.000000000 Z
13
+ date: 2014-03-10 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: aws-sdk
16
17
  requirement: !ruby/object:Gem::Requirement
18
+ none: false
17
19
  requirements:
18
- - - ">="
20
+ - - ! '>='
19
21
  - !ruby/object:Gem::Version
20
22
  version: '0'
21
23
  type: :runtime
22
24
  prerelease: false
23
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
- - - ">="
28
+ - - ! '>='
26
29
  - !ruby/object:Gem::Version
27
30
  version: '0'
28
31
  description: For automating Blue-Green deployment flows on Elastic Beanstalk.
@@ -34,9 +37,9 @@ executables:
34
37
  extensions: []
35
38
  extra_rdoc_files: []
36
39
  files:
37
- - ".gitignore"
38
- - ".ruby-gemset"
39
- - ".ruby-version"
40
+ - .gitignore
41
+ - .ruby-gemset
42
+ - .ruby-version
40
43
  - Gemfile
41
44
  - LICENSE
42
45
  - README.md
@@ -69,26 +72,27 @@ files:
69
72
  homepage: https://github.com/ThoughtWorksStudios/eb_deployer
70
73
  licenses:
71
74
  - MIT
72
- metadata: {}
73
75
  post_install_message:
74
76
  rdoc_options: []
75
77
  require_paths:
76
78
  - lib
77
79
  required_ruby_version: !ruby/object:Gem::Requirement
80
+ none: false
78
81
  requirements:
79
- - - ">="
82
+ - - ! '>='
80
83
  - !ruby/object:Gem::Version
81
84
  version: '0'
82
85
  required_rubygems_version: !ruby/object:Gem::Requirement
86
+ none: false
83
87
  requirements:
84
- - - ">="
88
+ - - ! '>='
85
89
  - !ruby/object:Gem::Version
86
90
  version: '0'
87
91
  requirements: []
88
92
  rubyforge_project:
89
- rubygems_version: 2.2.2
93
+ rubygems_version: 1.8.23
90
94
  signing_key:
91
- specification_version: 4
95
+ specification_version: 3
92
96
  summary: Low friction deployments should be a breeze. Elastic Beanstalk provides a
93
97
  great foundation for performing Blue-Green deployments, and EbDeployer add a missing
94
98
  top to automate the whole flow out of the box.
@@ -100,3 +104,4 @@ test_files:
100
104
  - test/environment_test.rb
101
105
  - test/smoke_test_test.rb
102
106
  - test/test_helper.rb
107
+ has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: db0cf300a1d06c7b6ed063eef7ef69c7cab8d025
4
- data.tar.gz: 5acf245e16a6c1ce4b4d35ad1d1544d5185b2329
5
- SHA512:
6
- metadata.gz: 35071cab562e78eae3485b15b2d81d328c5ae5618ea5fdc56dd7b8d7335bca0aa5c8937547b3474fe9194175ab093f75b2bca139b58740bb737da23ad7ae37f9
7
- data.tar.gz: 9a4f03e8d7a4a0a769e749d4d191b9feeec7def2ad598ffa41b36e72191dad9b46964efc8b9e5d8b37670678d322eaec57f46e640813dcafe5ad07065808e8e6