gantree 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ff66472c33546db57fb72859e6c1d0d914d45aec
4
- data.tar.gz: a239a2c814966bfe9978291d219449d3352ba51f
3
+ metadata.gz: 375f0ba44dd429bb2dac4ec8d9d7487cb799f22b
4
+ data.tar.gz: b71597843a51ddaf68838f4b339e9d6359bb5cf6
5
5
  SHA512:
6
- metadata.gz: bedf8c651dc799fd32d75f7ccbde70cb496d783b15f68013ad60c90c7f15c34eb0bb7e705d4098472e7119a3aa53417bb63bcd5517453c53555b2496c025279d
7
- data.tar.gz: f4ed2f47b20d2177669d6516ed85ef5a9c51ab78a47aad295828a7ebc69ae519d1c4abe8d8bb44b663f594d7c84924b6a030aba384bb3a46653abefaf9099fe1
6
+ metadata.gz: 7cd977a7179d2b9b09df0313809284e95567f1633e8cdaf4c4143cdf6a4691ef18a3b07817b5afa30054c2fd2cfe821997deacd4ec44144e7f6b984c0ff44556
7
+ data.tar.gz: 6be3ab8f036c1bdaf56421482f5aa8fc6c0d2a95907092d9eb6c8c91cfd7c409e47e6ee13cd2e82436baa60ffa66f55a2de7c2f5ff1c7fa302cfe4cc5179d93a
data/.travis.yml CHANGED
@@ -1,11 +1,16 @@
1
1
  language: ruby
2
2
  cache: bundler
3
3
  rvm:
4
- - 2.1.2
5
- before_script: echo "{"https://index.docker.io/v1/":{"auth":"ZmVlbG9ib3Q6azF6a2F6a29udHIwbDF0","email":"felix.a.rod@gmail.com"}"
4
+ - 2.1.3
5
+ before_script:
6
+ - echo "{"https://index.docker.io/v1/":{"auth":"$DOCKER_TOKEN","email":"$DOCKER_EMAIL"}"
6
7
  > $HOME/.dockercfg
7
8
  env:
8
9
  global:
9
10
  - secure: OoLMnBOcoXTPOimdyh4ju8yW2YpLBXEOdljN1gVQzjIIv24cQ0BxWAAktjExntkYAjnRpxzTKK5ZkWadXm8NK7TtzFU80padk+WYVzuE1Xngxw/OhS1Z6NYL8+D3ortSANqoOB6r/Z13Sb5XClYDWlj5/GGzf4AerY5xgh2nJQc=
10
11
  - secure: MCPnXXEMJkamb3HuYS0H+YeMDKORYAekCfB8YMrtUeMR3QTSe2yQ6eMaNC/I2D5g8cNw60mRagaMyDMadZ4aVQ4sUK1YOHexs/vPJrVrIJU8ZGFsueQyboJun1NZLGvKAIAok7yAEEfwftCd+svYrtrTtV88fk9deOnBLs4o3gM=
11
12
  - secure: QZ00MAXO+Lblk/6Q0Bi+YQQLJtJYVHqMattxjIi72q5aOPQOSMT8UjDvOhDF2D/Le0wGBqVQxpxbpP/5cSGCLxtAfBijTyIirnkqV2td4hiXNfyQn3a+KnOifquJ8Vmo1tp/vvKGN16PIrLQCi5ARlcTj8QxfOFIihsrpelg9Ik=
13
+ - secure: hs4c8HbrCmZzS1o1FFwymGKVgHDXahuh5h3Kp7mweHiGBV/QJsUy6sJq5oJMCZLPw6cqZ03NcpNaj+zwrt9pKkPnawyInLus6qrdv/OshMRRzFtXRT5HKt1u21KE3Qotg3+Cw8mPHCKHxi+Q2g57SyhM9ETZ74u83iqtBBLPXL8=
14
+ - secure: DRrSBPqc17MxNAU7H57dDNp25c0NzsPZEk3LwGtkNTSBQaJVqDM52BESRgcjUMpW9yO4qg3KEVxyip/fYB2wjMRO8tXIgb86HJktOHv3flKE4OSKni+lfzTW02Pm02bRJJ4TbDvwk1NGrPar5mHcSpHQiCibmjlcv9gDXTd9ZRs=
15
+ - secure: ovEq5bbK10ubB7PBiw+hN63L82Z0Azi8rGih5pnSI9VdHIViECKUM6FPciVFADA5xl+C4H/9oVxLaeDKqAsYvm1BsqBSnw4i8/0gmOa5twK4GpBPo4xkCMr9T5hA0xDGgN39AAEijJZVVmi+ecUpojHxVoxtEbjMK77Ud44mSMc=
16
+ - secure: hpE4SKYumT1GAo5Q56DZ7q0DK7CT4rKp0MpnZLZnO7ob0TPy6UCQZViOaIRuLQ7aj5wzWToHdOPkzBIyE5H8DfV84lvsBYktFac5TLoiU+nxl/aSzO11tfIY0gneKEyjSjWIS0zgNXE7F7zTC6R46dPGpq8nnW7dEyZwDKmy8jw=
data/lib/gantree/cli.rb CHANGED
@@ -12,6 +12,7 @@ module Gantree
12
12
  method_option :ext, :aliases => "-x", :desc => "ebextensions folder/repo"
13
13
  option :dry_run, :aliases => "-d", :desc => "do not actually deploy the app"
14
14
  option :silent, :aliases => "-s", :desc => "mute notifications"
15
+ option :image_path, :aliases => "-i", :desc => "docker hub image path ex. (bleacher/cms | quay.io/bleacherreport/cms)"
15
16
  option :autodetect_app_role, :desc => "use naming convention to determin role"
16
17
  def deploy name
17
18
  Gantree::Deploy.new(name, merge_defaults(options)).run
@@ -59,14 +60,14 @@ module Gantree
59
60
  end
60
61
 
61
62
  desc "build", "build and tag a docker application"
63
+ option :image_path, :aliases => "-i", :desc => "docker hub image path ex. (bleacher/cms | quay.io/bleacherreport/cms)"
62
64
  option :tag, :aliases => "-t", :desc => "set docker tag to build"
63
- option :hub, :aliases => "-h", :desc => "hub (docker|quay)"
64
65
  def build
65
66
  Gantree::Docker.new(merge_defaults(options)).build
66
67
  end
67
68
 
68
69
  desc "push", "build and tag a docker application"
69
- option :hub, :aliases => "-h", :desc => "hub (docker|quay)"
70
+ option :image_path, :aliases => "-i", :desc => "docker hub image path ex. (bleacher/cms | quay.io/bleacherreport/cms)"
70
71
  option :tag, :aliases => "-t", :desc => "set docker tag to push"
71
72
  def push
72
73
  Gantree::Docker.new(merge_defaults(options)).push
@@ -77,16 +78,16 @@ module Gantree
77
78
  puts Gantree::Docker.new(merge_defaults(options)).tag
78
79
  end
79
80
 
80
- desc "shipit", "tag a docker application"
81
+ desc "ship", "tag a docker application"
81
82
  option :branch, :desc => 'branch to deploy'
82
83
  option :tag, :aliases => "-t", :desc => "set docker tag to deploy", :default => Gantree::Base.new.tag
83
84
  option :ext, :aliases => "-x", :desc => "ebextensions folder/repo"
84
85
  option :dry_run, :aliases => "-d", :desc => "do not actually deploy the app"
85
86
  option :silent, :aliases => "-s", :desc => "mute notifications"
86
87
  option :autodetect_app_role, :desc => "use naming convention to determin role"
87
- option :hub, :aliases => "-h", :desc => "hub (docker|quay)"
88
+ option :image_path, :aliases => "-i", :desc => "hub image path ex. (bleacher/cms | quay.io/bleacherreport/cms)"
88
89
  option :hush, :desc => "quite puts messages", :default => true
89
- def shipit server
90
+ def ship server
90
91
  docker = Gantree::Docker.new(merge_defaults(options))
91
92
  docker.build
92
93
  docker.push
@@ -117,7 +117,7 @@ module Gantree
117
117
  })
118
118
  puts "Deployed #{@packaged_version} to #{env} on #{@app}".green
119
119
  rescue AWS::ElasticBeanstalk::Errors::InvalidParameterValue
120
- puts "Error: Something went wrong durring the deploy to #{env}".red
120
+ puts "Error: Something went wrong during the deploy to #{env}".red
121
121
  end
122
122
  end
123
123
  end
@@ -131,6 +131,7 @@ module Gantree
131
131
  version = "#{@app}-#{hash}-#{time_stamp}"
132
132
  puts "version: #{version}"
133
133
  #auto_detect_app_role if @options[:autodetect_app_role] == true
134
+ set_image_path if @options[:image_path]
134
135
  set_tag_to_deploy if @options[:tag]
135
136
  unless ext?
136
137
  new_dockerrun = "#{version}-Dockerrun.aws.json"
@@ -151,16 +152,19 @@ module Gantree
151
152
  IO.write(@dockerrun_file, JSON.pretty_generate(docker))
152
153
  end
153
154
 
155
+ def set_image_path
156
+ docker = JSON.parse(IO.read(@dockerrun_file))
157
+ image = docker["Image"]["Name"]
158
+ image.gsub!(/(.*):/, "#{@options[:image_path]}:")
159
+ IO.write(@dockerrun_file, JSON.pretty_generate(docker))
160
+ image
161
+ end
162
+
154
163
  def autodetect_app_role env
155
164
  enabled = @options[:autodetect_app_role]
156
165
  if enabled == true || enabled == "true"
157
166
  role = env.split('-')[2]
158
167
  puts "Deploying app as a #{role}"
159
- #role_cmd = IO.read("roles/#{role}").gsub("\n",'')
160
- #docker = JSON.parse(IO.read(@dockerrun_file))
161
- #docker["Cmd"] = role_cmd
162
- #IO.write(@dockerrun_file,JSON.pretty_generate(docker))
163
- #puts "Setting role cmd to '#{role_cmd}'"
164
168
  [{:option_name => "ROLE", :value => role, :namespace => "aws:elasticbeanstalk:application:environment" }]
165
169
  else
166
170
  []
@@ -7,18 +7,17 @@ module Gantree
7
7
  check_credentials
8
8
  set_aws_keys
9
9
  @options = options
10
- @hub = @options[:hub]
11
- raise "Please provide a hub name in your .gantreecfg ex { hub : 'bleacher' }" unless @hub
12
- @repo = `basename $(git rev-parse --show-toplevel)`.strip
10
+ @image_path = @options[:image_path]
11
+ raise "Please provide an image path name in .gantreecfg ex. { 'image_path' : 'bleacher/cms' }" unless @image_path
13
12
  @tag = @options[:tag] ||= tag
14
13
  end
15
14
 
16
15
  def build
17
16
  puts "Building..."
18
- output = `docker build -t #{@hub}/#{@repo}:#{@tag} .`
17
+ output = `docker build -t #{@image_path}:#{@tag} .`
19
18
  if $?.success?
20
- puts "Image Built: #{@hub}/#{@repo}:#{@tag}".green
21
- puts "docker push #{@hub}/#{@repo}:#{@tag}" unless @options[:hush]
19
+ puts "Image Built: #{@image_path}:#{@tag}".green
20
+ puts "gantree push --image-path #{@image_path} -t #{@tag}" unless @options[:hush]
22
21
  puts "gantree deploy app_name -t #{@tag}" unless @options[:hush]
23
22
  else
24
23
  puts "Error: Image was not built successfully".red
@@ -28,10 +27,10 @@ module Gantree
28
27
  end
29
28
 
30
29
  def push
31
- puts "Pushing..."
32
- output = `docker push #{@hub}/#{@repo}:#{@tag}`
30
+ puts "Pushing to #{@image_path}:#{@tag} ..."
31
+ output = `docker push #{@image_path}:#{@tag}`
33
32
  if $?.success?
34
- puts "Image Pushed: #{@hub}/#{@repo}:#{@tag}".green
33
+ puts "Image Pushed: #{@image_path}:#{@tag}".green
35
34
  puts "gantree deploy app_name -t #{@tag}" unless @options[:hush]
36
35
  else
37
36
  puts "Error: Image was not pushed successfully".red
data/lib/gantree/stack.rb CHANGED
@@ -103,7 +103,7 @@ module Gantree
103
103
  def replace_env_references file
104
104
  origin_tags = @options[:dupe].split("-")
105
105
  new_tags = @options[:stack_name].split("-")
106
- possible_roles = ["app","worker","listener","djay","scheduler"]
106
+ possible_roles = ["app","worker","listener","djay","scheduler","sched"]
107
107
  possible_roles.each do |role|
108
108
  origin_env = [origin_tags[1],origin_tags[0],role,origin_tags[2]].join('-')
109
109
  new_env = [new_tags[1],new_tags[0],role,new_tags[2]].join('-')
@@ -1,3 +1,3 @@
1
1
  module Gantree
2
- VERSION = "0.4.6"
2
+ VERSION = "0.4.7"
3
3
  end
@@ -44,6 +44,13 @@ describe Gantree::Deploy do
44
44
  gd.set_aws_keys
45
45
  end
46
46
 
47
+ it "the image path is dynamic" do
48
+ options = { image_path: "quay.io/bleacherreport/cms" }
49
+ deploy = Gantree::Deploy.new(@env,options)
50
+ image_path = deploy.instance_variable_get("@options")[:image_path]
51
+ expect(image_path).to eq("quay.io/bleacherreport/cms")
52
+ end
53
+
47
54
  it "raises an error when no aws keys in ENV" do
48
55
  ENV['AWS_ACCESS_KEY_ID'] = nil
49
56
  ENV['AWS_SECRET_ACCESS_KEY'] = nil
@@ -54,3 +61,20 @@ describe Gantree::Deploy do
54
61
  end
55
62
  end
56
63
 
64
+ def dockerrun
65
+ '
66
+ {
67
+ "AWSEBDockerrunVersion": "1",
68
+ "Image": {
69
+ "Name": "bleacher/cms",
70
+ "Update": true
71
+ },
72
+ "Logging": "/var/log/nginx",
73
+ "Ports": [
74
+ {
75
+ "ContainerPort": "300"
76
+ }
77
+ ]
78
+ }
79
+ '
80
+ end
@@ -0,0 +1,19 @@
1
+ require "spec_helper"
2
+ require "pry"
3
+
4
+ describe Gantree::Docker do
5
+ before(:all) do
6
+ ENV['AWS_ACCESS_KEY_ID'] = 'FAKE_AWS_ACCESS_KEY'
7
+ ENV['AWS_SECRET_ACCESS_KEY'] = 'FAKE_AWS_SECRET_ACCESS_KEY'
8
+ end
9
+
10
+ it "requires an image_path option to be set"
11
+ it "generates a unique tag for you"
12
+ it "allows you to set your own tag to build"
13
+ it "allows you to set your own tag to push"
14
+ it "builds dockerfiles with tag"
15
+ it "accepts image path parameter"
16
+ it "pushes tag to dockerhub"
17
+
18
+ end
19
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gantree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-05 00:00:00.000000000 Z
11
+ date: 2014-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -283,6 +283,7 @@ files:
283
283
  - lib/gantree/version.rb
284
284
  - spec/lib/gantree/cli_spec.rb
285
285
  - spec/lib/gantree/deploy_spec.rb
286
+ - spec/lib/gantree/docker_spec.rb
286
287
  - spec/lib/gantree/init_spec.rb
287
288
  - spec/lib/gantree/stack_spec.rb
288
289
  - spec/spec_helper.rb
@@ -316,6 +317,7 @@ summary: This tool is intended to help you setup a Dockerrun.aws.json which allo
316
317
  test_files:
317
318
  - spec/lib/gantree/cli_spec.rb
318
319
  - spec/lib/gantree/deploy_spec.rb
320
+ - spec/lib/gantree/docker_spec.rb
319
321
  - spec/lib/gantree/init_spec.rb
320
322
  - spec/lib/gantree/stack_spec.rb
321
323
  - spec/spec_helper.rb