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 +8 -8
- data/README.md +2 -1
- data/lib/dpl/provider/code_deploy.rb +23 -2
- data/spec/provider/code_deploy_spec.rb +18 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OWUzZTBjY2I0ZDZkMmYyYWU1MDYzMzcxMDg5OTY4OTk1OTJiZmFhMw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZDRlYjYzNTliM2ZkYWY5OGRjNTFjMWEyZGFiYzFlODhiYzBhNTJjNw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NjE5NjYwNGYxMmI3M2JmYzNhNDg4YTk5MmZkM2IzNDg4NjI4ZDI1NDUzYTVk
|
10
|
+
YjZiODMyNTVjOTA2YTI1OWM1Yjk1MWZiZDc0ZWY4Njc4ZmEzMDE0OWJjZTg3
|
11
|
+
NzQxYWE2NjQzMGU2NWI0ZjUzOTRiYjhmZWU5NDI0Y2FmNWU1NDg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
-
|
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 #{
|
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.
|
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-
|
11
|
+
date: 2015-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|