dpl 1.7.12.travis.797.4 → 1.7.12.travis.807.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OGFjMzAxNGUxOGZlYTAxMzUzZmJhYWM2MDU4NWFmZTlhODk0YzUzOA==
4
+ OWUzZTBjY2I0ZDZkMmYyYWU1MDYzMzcxMDg5OTY4OTk1OTJiZmFhMw==
5
5
  data.tar.gz: !binary |-
6
- YjI1OGFlMTIwYWU2MTgyZDk4ZjZiYzZjYWRjMTg0OTk3YmRlMzRmOA==
6
+ ZDRlYjYzNTliM2ZkYWY5OGRjNTFjMWEyZGFiYzFlODhiYzBhNTJjNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Y2MxNGNiNmI3NmU2N2U0YTE4MmE3MWU5NTEzZTQwYmI3MWY5ZjA5MWEyMjU5
10
- YmZmNzQ0M2QxZWZkNTBhNzJmODY3MDZhMTNlMzZhZDI1Yjc5YjIzMGU3NmM2
11
- ODIwNTFmYTUwZmNkNDc3NjgxYTQ1OTE2OTBlOTE3NjhiMmQ3OWQ=
9
+ NjE5NjYwNGYxMmI3M2JmYzNhNDg4YTk5MmZkM2IzNDg4NjI4ZDI1NDUzYTVk
10
+ YjZiODMyNTVjOTA2YTI1OWM1Yjk1MWZiZDc0ZWY4Njc4ZmEzMDE0OWJjZTg3
11
+ NzQxYWE2NjQzMGU2NWI0ZjUzOTRiYjhmZWU5NDI0Y2FmNWU1NDg=
12
12
  data.tar.gz: !binary |-
13
- NWYwZTIyZGIxNzc4MTk4ZjgyZjdmMjU5YmUyM2Q2MjkwYjQzZWE4ZDJmYjc5
14
- YjE3MDM3NmZjOGVmY2ViNTVlZDY2ZDZhMDJiYjY2NzZjZjJmYmY0MTc2MGM2
15
- ZjVkNWVhYzMyZTM0YjE0N2FkYWI0NmViZjFmM2YzZDJjNjFkNDg=
13
+ OTdjY2QwYTJmOWNmYzllNDdlZTViNjVhNmZmZTRiMzg3YzRiNjZlNmU2ZTYz
14
+ MmExZTU5OTZiNTU4YTYxYzUzMjJiNDkxMzY3Y2ZmN2M3Y2Y5NmIzZWI2YTY3
15
+ ZGY1YjhmMTMwMGZlMjk2YWI0MWNlYzAwYjlhZTMxZTE5Y2EyMzA=
data/README.md CHANGED
@@ -551,7 +551,8 @@ and your testers can start testing your app.
551
551
  * **commit_id**: Commit ID in case of GitHub.
552
552
  * **repository**: Repository Name in case of GitHub.
553
553
  * **region**: AWS Availability Zone.
554
+ * **wait-until-deployed**: Wait until the app is deployed and return the deployment status (Optional, Default false).
554
555
 
555
556
  #### Examples:
556
557
 
557
- dpl --provider=codedeploy --access-key-id=<aws access key> --secret_access_key=<aws secret access key> --application=<application name> --deployment_group=<deployment group> --revision_type=<s3/github> --commit_id=<commit ID> --repository=<repo name> --region=<AWS availability zone>
558
+ dpl --provider=codedeploy --access-key-id=<aws access key> --secret_access_key=<aws secret access key> --application=<application name> --deployment_group=<deployment group> --revision_type=<s3/github> --commit_id=<commit ID> --repository=<repo name> --region=<AWS availability zone> --wait-until-deployed=<true>
@@ -53,17 +53,38 @@ module DPL
53
53
  end
54
54
 
55
55
  def push_app
56
- deployment = code_deploy.create_deployment({
56
+ data = code_deploy.create_deployment({
57
57
  revision: revision,
58
58
  application_name: options[:application] || option(:application_name),
59
59
  deployment_group_name: options[:deployment_group] || option(:deployment_group_name),
60
60
  description: options[:description] || default_description
61
61
  })
62
- log "Triggered deployment #{deployment.deployment_id.inspect}."
62
+ log "Triggered deployment #{data.deployment_id.inspect}."
63
+ return unless options[:wait_until_deployed]
64
+ print "Deploying "
65
+ deployment = wait_until_deployed(data[:deployment_id])
66
+ print "\n"
67
+ if deployment[:status] == 'Succeeded'
68
+ log "Deployment successful."
69
+ else
70
+ error "Deployment failed."
71
+ end
63
72
  rescue Aws::CodeDeploy::Errors::DeploymentLimitExceededException => exception
64
73
  error(exception.message)
65
74
  end
66
75
 
76
+ def wait_until_deployed(deployment_id)
77
+ deployment = {}
78
+ loop do
79
+ result = code_deploy.get_deployment(deployment_id: deployment_id)
80
+ deployment = result[:deployment_info]
81
+ break if deployment[:status] == "Succeeded" || deployment[:status] == "Failed" || deployment[:status] == "Stopped"
82
+ print "."
83
+ sleep 5
84
+ end
85
+ deployment
86
+ end
87
+
67
88
  def bundle_type
68
89
  if s3_key =~ /\.(tar|tgz|zip)$/
69
90
  options[:bundle_type] || $1
@@ -255,6 +255,24 @@ describe DPL::Provider::CodeDeploy do
255
255
  expect(provider).to receive(:log).with(/Triggered deployment \"#{deployment_id}\"\./)
256
256
  provider.push_app
257
257
  end
258
+
259
+ before do
260
+ allow(provider.code_deploy).to receive(:get_deployment).and_return(
261
+ {:deployment_info => {:status => "Created"}},
262
+ {:deployment_info => {:status => "Queued"}},
263
+ {:deployment_info => {:status => "InProgress"}},
264
+ {:deployment_info => {:status => "Succeeded"}})
265
+ end
266
+
267
+ example 'with :wait_until_deployed' do
268
+ old_options = provider.options
269
+ provider.stub(:options) {old_options.merge({
270
+ app_id: 'app-id',
271
+ wait_until_deployed: true})}
272
+ expect(provider).to receive(:log).with(/Triggered deployment \"#{deployment_id}\"\./)
273
+ expect(provider).to receive(:log).with(/Deployment successful./)
274
+ provider.push_app
275
+ end
258
276
  end
259
277
 
260
278
  context 'with an error' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dpl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.12.travis.797.4
4
+ version: 1.7.12.travis.807.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-02 00:00:00.000000000 Z
11
+ date: 2015-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec