dpl 1.5.3.travis.259.1 → 1.5.3.travis.261.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 +9 -9
- data/README.md +2 -2
- data/lib/dpl/provider/ops_works.rb +45 -1
- data/spec/provider/ops_works_spec.rb +25 -4
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
YzdkNDEyOGEyNDY0NjVmYWUwZDU5MDJhZTQ5YzI2Yjg3NzIyNzg4Mw==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
OWJhYThkZGUyODQ2NjllMWM3ZjZlMGRkZjRiMjdiOTc0NDE5ZDkxMA==
|
|
7
|
+
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
NzM3MTU5Mzk2MTFmYmUzMmVhZmZhM2FmMGNmOWFmYWZlNTNmYThhYTA5MzE1
|
|
10
|
+
YzM4YzNkYzQxZGE5NzgzNTAwYTZiZGJjODFlMDI3MzM0ZjkzYTlmYjEyYjUw
|
|
11
|
+
ZDk3NTYxZDEyZWU4YTBiZTY4YWM3NDdjZDkzYmJiNTU4YTk5MjM=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
MzE3ZTViMTY5M2RkZjAxMjU4NDJlNmZkMzc1NjU4ZDQ0MGFhZmFlMDczN2Rm
|
|
14
|
+
YmMzNzQzN2MzOTFkZmNiMTE3NDc2MTQ4Y2Q5MWJkYTFlNjJkZDU3YjhjOTM2
|
|
15
|
+
ZjBkM2ZhMjc0OTEzNmM0ODBhNDQ5YTUxMmVkNTdlZTkzNjk5YWU=
|
data/README.md
CHANGED
|
@@ -170,12 +170,12 @@ As a rule of thumb, you should switch to the Git strategy if you run into issues
|
|
|
170
170
|
|
|
171
171
|
* **access-key-id**: AWS Access Key ID. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
|
|
172
172
|
* **secret-access-key**: AWS Secret Key. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
|
|
173
|
-
* **stack-id**: The stack ID.
|
|
174
173
|
* **app-id**: The app ID.
|
|
174
|
+
* **migrate**: Migrate the database. (Default: false)
|
|
175
175
|
|
|
176
176
|
#### Examples:
|
|
177
177
|
|
|
178
|
-
dpl --provider=opsworks --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --
|
|
178
|
+
dpl --provider=opsworks --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --app-id=<app-id> --migrate
|
|
179
179
|
|
|
180
180
|
|
|
181
181
|
### Appfog:
|
|
@@ -8,6 +8,10 @@ module DPL
|
|
|
8
8
|
@api ||= AWS::OpsWorks.new
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
+
def client
|
|
12
|
+
@client ||= api.client
|
|
13
|
+
end
|
|
14
|
+
|
|
11
15
|
def needs_key?
|
|
12
16
|
false
|
|
13
17
|
end
|
|
@@ -25,8 +29,48 @@ module DPL
|
|
|
25
29
|
log "Logging in with Access Key: #{option(:access_key_id)[-4..-1].rjust(20, '*')}"
|
|
26
30
|
end
|
|
27
31
|
|
|
32
|
+
def custom_json
|
|
33
|
+
{
|
|
34
|
+
deploy: {
|
|
35
|
+
ops_works_app[:shortname] => {
|
|
36
|
+
migrate: !!options[:migrate],
|
|
37
|
+
scm: {
|
|
38
|
+
revision: current_sha
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def current_sha
|
|
46
|
+
@current_sha ||= `git rev-parse HEAD`.chomp
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def ops_works_app
|
|
50
|
+
@ops_works_app ||= fetch_ops_works_app
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def fetch_ops_works_app
|
|
54
|
+
data = client.describe_apps(app_ids: [option(:app_id)])
|
|
55
|
+
unless data[:apps] && data[:apps].count == 1
|
|
56
|
+
raise Error, "App #{option(:app_id)} not found.", error.backtrace
|
|
57
|
+
end
|
|
58
|
+
data[:apps].first
|
|
59
|
+
end
|
|
60
|
+
|
|
28
61
|
def push_app
|
|
29
|
-
|
|
62
|
+
data = client.create_deployment(
|
|
63
|
+
stack_id: ops_works_app[:stack_id],
|
|
64
|
+
app_id: option(:app_id),
|
|
65
|
+
command: {name: 'deploy'},
|
|
66
|
+
comment: travis_deploy_comment,
|
|
67
|
+
custom_json: custom_json.to_json
|
|
68
|
+
)
|
|
69
|
+
log "Deployment created: #{data[:deployment_id]}"
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def travis_deploy_comment
|
|
73
|
+
"Deploy #{ENV['TRAVIS_COMMIT'] || current_sha} via Travis CI"
|
|
30
74
|
end
|
|
31
75
|
|
|
32
76
|
def deploy
|
|
@@ -16,7 +16,7 @@ describe DPL::Provider::OpsWorks do
|
|
|
16
16
|
describe :check_auth do
|
|
17
17
|
example do
|
|
18
18
|
provider.should_receive(:setup_auth)
|
|
19
|
-
provider.should_receive(:log).with(
|
|
19
|
+
provider.should_receive(:log).with('Logging in with Access Key: ****************jklz')
|
|
20
20
|
provider.check_auth
|
|
21
21
|
end
|
|
22
22
|
end
|
|
@@ -36,10 +36,31 @@ describe DPL::Provider::OpsWorks do
|
|
|
36
36
|
|
|
37
37
|
describe :push_app do
|
|
38
38
|
let(:client) { double(:ops_works_client) }
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
let(:ops_works_app) { {shortname: 'app', stack_id: 'stack-id'} }
|
|
40
|
+
before do
|
|
41
|
+
provider.should_receive(:current_sha).and_return('sha')
|
|
41
42
|
provider.api.should_receive(:client).and_return(client)
|
|
42
|
-
|
|
43
|
+
ENV.should_receive(:[]).with('TRAVIS_COMMIT').and_return('123')
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
let(:custom_json) { "{\"deploy\":{\"app\":{\"migrate\":false,\"scm\":{\"revision\":\"sha\"}}}}" }
|
|
47
|
+
example 'without :migrate option' do
|
|
48
|
+
provider.options.update(app_id: 'app-id')
|
|
49
|
+
client.should_receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]}
|
|
50
|
+
)
|
|
51
|
+
client.should_receive(:create_deployment).with(
|
|
52
|
+
stack_id: 'stack-id', app_id: 'app-id', command: {name: 'deploy'}, comment: 'Deploy 123 via Travis CI', custom_json: custom_json
|
|
53
|
+
).and_return({})
|
|
54
|
+
provider.push_app
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
let(:custom_json_with_migrate) { "{\"deploy\":{\"app\":{\"migrate\":true,\"scm\":{\"revision\":\"sha\"}}}}" }
|
|
58
|
+
example 'with :migrate option' do
|
|
59
|
+
provider.options.update(app_id: 'app-id', migrate: true)
|
|
60
|
+
client.should_receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
|
|
61
|
+
client.should_receive(:create_deployment).with(
|
|
62
|
+
stack_id: 'stack-id', app_id: 'app-id', command: {name: 'deploy'}, comment: 'Deploy 123 via Travis CI', custom_json: custom_json_with_migrate
|
|
63
|
+
).and_return({})
|
|
43
64
|
provider.push_app
|
|
44
65
|
end
|
|
45
66
|
end
|
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.5.3.travis.
|
|
4
|
+
version: 1.5.3.travis.261.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Konstantin Haase
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2013-11-
|
|
11
|
+
date: 2013-11-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -142,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
142
142
|
version: 1.3.1
|
|
143
143
|
requirements: []
|
|
144
144
|
rubyforge_project:
|
|
145
|
-
rubygems_version: 2.
|
|
145
|
+
rubygems_version: 2.1.11
|
|
146
146
|
signing_key:
|
|
147
147
|
specification_version: 4
|
|
148
148
|
summary: deploy tool
|