dpl 1.8.18.travis.1472.4 → 1.8.21
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 +8 -8
- data/.travis.yml +7 -3
- data/Gemfile +12 -2
- data/README.md +88 -36
- data/dpl.gemspec +1 -1
- data/lib/dpl/provider/appfog.rb +1 -0
- data/lib/dpl/provider/atlas.rb +17 -7
- data/lib/dpl/provider/azure_webapps.rb +2 -2
- data/lib/dpl/provider/catalyze.rb +49 -0
- data/lib/dpl/provider/chef_supermarket.rb +2 -0
- data/lib/dpl/provider/cloud_files.rb +1 -2
- data/lib/dpl/provider/cloud_foundry.rb +1 -1
- data/lib/dpl/provider/deis.rb +1 -1
- data/lib/dpl/provider/exoscale.rb +100 -0
- data/lib/dpl/provider/firebase.rb +2 -2
- data/lib/dpl/provider/openshift.rb +1 -0
- data/lib/dpl/provider/ops_works.rb +22 -18
- data/lib/dpl/provider/packagecloud.rb +1 -0
- data/lib/dpl/provider/puppet_forge.rb +1 -0
- data/lib/dpl/provider/s3.rb +3 -1
- data/lib/dpl/provider.rb +1 -1
- data/lib/dpl/version.rb +1 -1
- data/spec/provider/azure_webapps_spec.rb +95 -0
- data/spec/provider/catalyze_spec.rb +39 -0
- data/spec/provider/cloudfoundry_spec.rb +1 -1
- data/spec/provider/deis_spec.rb +1 -1
- data/spec/provider/exoscale_spec.rb +191 -0
- data/spec/provider/firebase_spec.rb +1 -1
- data/spec/provider/ops_works_spec.rb +93 -57
- data/spec/provider/s3_spec.rb +7 -0
- data/spec/spec_helper.rb +1 -0
- metadata +76 -6
|
@@ -1,91 +1,127 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
-
require 'aws-sdk
|
|
2
|
+
require 'aws-sdk'
|
|
3
3
|
require 'dpl/provider'
|
|
4
4
|
require 'dpl/provider/ops_works'
|
|
5
5
|
|
|
6
6
|
describe DPL::Provider::OpsWorks do
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
subject :provider do
|
|
9
|
+
described_class.new(DummyContext.new, :access_key_id => 'qwertyuiopasdfghjklz', :secret_access_key => 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz')
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
describe '#opsworks_options' do
|
|
13
|
+
context 'without region' do
|
|
14
|
+
example do
|
|
15
|
+
options = provider.opsworks_options
|
|
16
|
+
expect(options[:region]).to eq('us-east-1')
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
context 'with region' do
|
|
21
|
+
example do
|
|
22
|
+
region = 'us-west-1'
|
|
23
|
+
provider.options.update(:region => region)
|
|
24
|
+
options = provider.opsworks_options
|
|
25
|
+
expect(options[:region]).to eq(region)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
14
28
|
end
|
|
15
29
|
|
|
16
30
|
describe "#check_auth" do
|
|
17
31
|
example do
|
|
18
|
-
expect(provider).to receive(:setup_auth)
|
|
19
32
|
expect(provider).to receive(:log).with('Logging in with Access Key: ****************jklz')
|
|
20
33
|
provider.check_auth
|
|
21
34
|
end
|
|
22
35
|
end
|
|
23
36
|
|
|
24
|
-
describe "#setup_auth" do
|
|
25
|
-
example do
|
|
26
|
-
expect(AWS).to receive(:config).with(:access_key_id => 'qwertyuiopasdfghjklz', :secret_access_key => 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz').once.and_call_original
|
|
27
|
-
provider.setup_auth
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
37
|
describe "#needs_key?" do
|
|
32
38
|
example do
|
|
33
39
|
expect(provider.needs_key?).to eq(false)
|
|
34
40
|
end
|
|
35
41
|
end
|
|
36
42
|
|
|
37
|
-
describe
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
expect(provider).to receive(:current_sha).and_return('sha')
|
|
42
|
-
expect(provider.api).to receive(:client).and_return(client)
|
|
43
|
-
expect(provider.context.env).to receive(:[]).with('TRAVIS_BUILD_NUMBER').and_return('123')
|
|
44
|
-
end
|
|
43
|
+
describe DPL::Provider::OpsWorks do
|
|
44
|
+
access_key_id = 'someaccesskey'
|
|
45
|
+
secret_access_key = 'somesecretaccesskey'
|
|
46
|
+
region = 'us-east-1'
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
expect(client).to receive(:create_deployment).with(
|
|
52
|
-
stack_id: 'stack-id', app_id: 'app-id', command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json
|
|
53
|
-
).and_return({})
|
|
54
|
-
provider.push_app
|
|
55
|
-
end
|
|
48
|
+
client_options = {
|
|
49
|
+
stub_responses: true,
|
|
50
|
+
region: region,
|
|
51
|
+
credentials: Aws::Credentials.new(access_key_id, secret_access_key)
|
|
52
|
+
}
|
|
56
53
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
stack_id: 'stack-id', app_id: 'app-id', command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json_with_migrate
|
|
63
|
-
).and_return({})
|
|
64
|
-
provider.push_app
|
|
54
|
+
subject :provider do
|
|
55
|
+
described_class.new(DummyContext.new, {
|
|
56
|
+
access_key_id: access_key_id,
|
|
57
|
+
secret_access_key: secret_access_key
|
|
58
|
+
})
|
|
65
59
|
end
|
|
66
60
|
|
|
67
|
-
|
|
68
|
-
provider.
|
|
69
|
-
expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
|
|
70
|
-
expect(client).to receive(:create_deployment).and_return({deployment_id: 'deployment_id'})
|
|
71
|
-
expect(client).to receive(:describe_deployments).with({deployment_ids: ['deployment_id']}).and_return({deployments: [status: 'running']}, {deployments: [status: 'successful']})
|
|
72
|
-
provider.push_app
|
|
61
|
+
before :each do
|
|
62
|
+
expect(provider).to receive(:opsworks_options).and_return(client_options)
|
|
73
63
|
end
|
|
74
64
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
).and_return({})
|
|
81
|
-
provider.push_app
|
|
65
|
+
describe '#opsworks' do
|
|
66
|
+
example do
|
|
67
|
+
expect(Aws::OpsWorks::Client).to receive(:new).with(client_options).once
|
|
68
|
+
provider.opsworks
|
|
69
|
+
end
|
|
82
70
|
end
|
|
83
|
-
end
|
|
84
71
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
72
|
+
describe "#push_app" do
|
|
73
|
+
let(:client) { provider.opsworks }
|
|
74
|
+
let(:ops_works_app) { {shortname: 'app', stack_id: 'stack-id'} }
|
|
75
|
+
before do
|
|
76
|
+
expect(provider).to receive(:current_sha).and_return('sha')
|
|
77
|
+
expect(provider.context.env).to receive(:[]).with('TRAVIS_BUILD_NUMBER').and_return('123')
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
let(:custom_json) { "{\"deploy\":{\"app\":{\"migrate\":false,\"scm\":{\"revision\":\"sha\"}}}}" }
|
|
81
|
+
example 'without :migrate option' do
|
|
82
|
+
provider.options.update(app_id: 'app-id')
|
|
83
|
+
expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
|
|
84
|
+
expect(client).to receive(:create_deployment).with(
|
|
85
|
+
stack_id: 'stack-id', app_id: 'app-id', command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json
|
|
86
|
+
).and_return({})
|
|
87
|
+
provider.push_app
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
let(:custom_json_with_migrate) { "{\"deploy\":{\"app\":{\"migrate\":true,\"scm\":{\"revision\":\"sha\"}}}}" }
|
|
91
|
+
example 'with :migrate option' do
|
|
92
|
+
provider.options.update(app_id: 'app-id', migrate: true)
|
|
93
|
+
expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
|
|
94
|
+
expect(client).to receive(:create_deployment).with(
|
|
95
|
+
stack_id: 'stack-id', app_id: 'app-id', command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json_with_migrate
|
|
96
|
+
).and_return({})
|
|
97
|
+
provider.push_app
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
example 'with :wait_until_deployed' do
|
|
101
|
+
provider.options.update(app_id: 'app-id', wait_until_deployed: true)
|
|
102
|
+
expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
|
|
103
|
+
expect(client).to receive(:create_deployment).and_return({deployment_id: 'deployment_id'})
|
|
104
|
+
expect(client).to receive(:describe_deployments).with({deployment_ids: ['deployment_id']}).and_return({deployments: [status: 'running']}, {deployments: [status: 'successful']})
|
|
105
|
+
provider.push_app
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
example 'with :instance-ids' do
|
|
109
|
+
provider.options.update(app_id: 'app-id', instance_ids: ['instance-id'])
|
|
110
|
+
expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
|
|
111
|
+
expect(client).to receive(:create_deployment).with(
|
|
112
|
+
stack_id: 'stack-id', app_id: 'app-id', instance_ids:['instance-id'], command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json
|
|
113
|
+
).and_return({})
|
|
114
|
+
provider.push_app
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
example 'with :layer-ids' do
|
|
118
|
+
provider.options.update(app_id: 'app-id', layer_ids: ['layer-id'])
|
|
119
|
+
expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
|
|
120
|
+
expect(client).to receive(:create_deployment).with(
|
|
121
|
+
stack_id: 'stack-id', app_id: 'app-id', layer_ids:['layer-id'], command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json
|
|
122
|
+
).and_return({})
|
|
123
|
+
provider.push_app
|
|
124
|
+
end
|
|
89
125
|
end
|
|
90
126
|
end
|
|
91
127
|
end
|
data/spec/provider/s3_spec.rb
CHANGED
|
@@ -127,6 +127,13 @@ describe DPL::Provider::S3 do
|
|
|
127
127
|
provider.push_app
|
|
128
128
|
end
|
|
129
129
|
|
|
130
|
+
example "Sets Storage Class" do
|
|
131
|
+
provider.options.update(:storage_class => "STANDARD_AI")
|
|
132
|
+
expect(Dir).to receive(:glob).and_yield(__FILE__)
|
|
133
|
+
expect_any_instance_of(Aws::S3::Object).to receive(:upload_file).with(anything(), hash_including(:storage_class => "STANDARD_AI"))
|
|
134
|
+
provider.push_app
|
|
135
|
+
end
|
|
136
|
+
|
|
130
137
|
example "Sets Website Index Document" do
|
|
131
138
|
provider.options.update(:index_document_suffix => "test/index.html")
|
|
132
139
|
expect(Dir).to receive(:glob).and_yield(__FILE__)
|
data/spec/spec_helper.rb
CHANGED
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.8.
|
|
4
|
+
version: 1.8.21
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Konstantin Haase
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-09-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -66,6 +66,26 @@ dependencies:
|
|
|
66
66
|
- - '='
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: 1.8.1
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: tins
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ~>
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 1.6.0
|
|
76
|
+
- - ! '>='
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: 1.6.0
|
|
79
|
+
type: :development
|
|
80
|
+
prerelease: false
|
|
81
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
82
|
+
requirements:
|
|
83
|
+
- - ~>
|
|
84
|
+
- !ruby/object:Gem::Version
|
|
85
|
+
version: 1.6.0
|
|
86
|
+
- - ! '>='
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 1.6.0
|
|
69
89
|
- !ruby/object:Gem::Dependency
|
|
70
90
|
name: coveralls
|
|
71
91
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -108,6 +128,7 @@ files:
|
|
|
108
128
|
- lib/dpl/provider/bintray.rb
|
|
109
129
|
- lib/dpl/provider/bitballoon.rb
|
|
110
130
|
- lib/dpl/provider/boxfuse.rb
|
|
131
|
+
- lib/dpl/provider/catalyze.rb
|
|
111
132
|
- lib/dpl/provider/chef_supermarket.rb
|
|
112
133
|
- lib/dpl/provider/cloud66.rb
|
|
113
134
|
- lib/dpl/provider/cloud_files.rb
|
|
@@ -117,6 +138,7 @@ files:
|
|
|
117
138
|
- lib/dpl/provider/divshot.rb
|
|
118
139
|
- lib/dpl/provider/elastic_beanstalk.rb
|
|
119
140
|
- lib/dpl/provider/engine_yard.rb
|
|
141
|
+
- lib/dpl/provider/exoscale.rb
|
|
120
142
|
- lib/dpl/provider/firebase.rb
|
|
121
143
|
- lib/dpl/provider/gae.rb
|
|
122
144
|
- lib/dpl/provider/gcs.rb
|
|
@@ -153,9 +175,11 @@ files:
|
|
|
153
175
|
- spec/provider/anynines_spec.rb
|
|
154
176
|
- spec/provider/appfog_spec.rb
|
|
155
177
|
- spec/provider/atlas_spec.rb
|
|
178
|
+
- spec/provider/azure_webapps_spec.rb
|
|
156
179
|
- spec/provider/bintray_spec.rb
|
|
157
180
|
- spec/provider/bitballoon_spec.rb
|
|
158
181
|
- spec/provider/boxfuse_spec.rb
|
|
182
|
+
- spec/provider/catalyze_spec.rb
|
|
159
183
|
- spec/provider/chef_supermarket_spec.rb
|
|
160
184
|
- spec/provider/cloud66_spec.rb
|
|
161
185
|
- spec/provider/cloud_files_spec.rb
|
|
@@ -164,6 +188,7 @@ files:
|
|
|
164
188
|
- spec/provider/deis_spec.rb
|
|
165
189
|
- spec/provider/divshot_spec.rb
|
|
166
190
|
- spec/provider/elastic_beanstalk_spec.rb
|
|
191
|
+
- spec/provider/exoscale_spec.rb
|
|
167
192
|
- spec/provider/firebase_spec.rb
|
|
168
193
|
- spec/provider/gae_spec.rb
|
|
169
194
|
- spec/provider/gcs_spec.rb
|
|
@@ -206,13 +231,58 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
206
231
|
version: 1.9.3
|
|
207
232
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
233
|
requirements:
|
|
209
|
-
- - ! '
|
|
234
|
+
- - ! '>='
|
|
210
235
|
- !ruby/object:Gem::Version
|
|
211
|
-
version:
|
|
236
|
+
version: '0'
|
|
212
237
|
requirements: []
|
|
213
238
|
rubyforge_project:
|
|
214
|
-
rubygems_version: 2.4.
|
|
239
|
+
rubygems_version: 2.4.8
|
|
215
240
|
signing_key:
|
|
216
241
|
specification_version: 4
|
|
217
242
|
summary: deploy tool
|
|
218
|
-
test_files:
|
|
243
|
+
test_files:
|
|
244
|
+
- spec/cli_spec.rb
|
|
245
|
+
- spec/provider/anynines_spec.rb
|
|
246
|
+
- spec/provider/appfog_spec.rb
|
|
247
|
+
- spec/provider/atlas_spec.rb
|
|
248
|
+
- spec/provider/azure_webapps_spec.rb
|
|
249
|
+
- spec/provider/bintray_spec.rb
|
|
250
|
+
- spec/provider/bitballoon_spec.rb
|
|
251
|
+
- spec/provider/boxfuse_spec.rb
|
|
252
|
+
- spec/provider/catalyze_spec.rb
|
|
253
|
+
- spec/provider/chef_supermarket_spec.rb
|
|
254
|
+
- spec/provider/cloud66_spec.rb
|
|
255
|
+
- spec/provider/cloud_files_spec.rb
|
|
256
|
+
- spec/provider/cloudfoundry_spec.rb
|
|
257
|
+
- spec/provider/code_deploy_spec.rb
|
|
258
|
+
- spec/provider/deis_spec.rb
|
|
259
|
+
- spec/provider/divshot_spec.rb
|
|
260
|
+
- spec/provider/elastic_beanstalk_spec.rb
|
|
261
|
+
- spec/provider/exoscale_spec.rb
|
|
262
|
+
- spec/provider/firebase_spec.rb
|
|
263
|
+
- spec/provider/gae_spec.rb
|
|
264
|
+
- spec/provider/gcs_spec.rb
|
|
265
|
+
- spec/provider/hackage_spec.rb
|
|
266
|
+
- spec/provider/heroku_anvil_spec.rb
|
|
267
|
+
- spec/provider/heroku_api_spec.rb
|
|
268
|
+
- spec/provider/heroku_git_deploy_key_spec.rb
|
|
269
|
+
- spec/provider/heroku_git_spec.rb
|
|
270
|
+
- spec/provider/lambda_spec.rb
|
|
271
|
+
- spec/provider/launchpad_spec.rb
|
|
272
|
+
- spec/provider/modulus_spec.rb
|
|
273
|
+
- spec/provider/npm_spec.rb
|
|
274
|
+
- spec/provider/openshift_spec.rb
|
|
275
|
+
- spec/provider/ops_works_spec.rb
|
|
276
|
+
- spec/provider/packagecloud_spec.rb
|
|
277
|
+
- spec/provider/puppet_forge_spec.rb
|
|
278
|
+
- spec/provider/pypi_spec.rb
|
|
279
|
+
- spec/provider/releases_spec.rb
|
|
280
|
+
- spec/provider/rubygems_spec.rb
|
|
281
|
+
- spec/provider/s3_spec.rb
|
|
282
|
+
- spec/provider/scalingo_spec.rb
|
|
283
|
+
- spec/provider/script_spec.rb
|
|
284
|
+
- spec/provider/surge_spec.rb
|
|
285
|
+
- spec/provider/testfairy_spec.rb
|
|
286
|
+
- spec/provider/transifex_spec.rb
|
|
287
|
+
- spec/provider_spec.rb
|
|
288
|
+
- spec/spec_helper.rb
|