dpl 1.8.48.travis.2486.5 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -0
  3. data/.travis.yml +42 -21
  4. data/Gemfile +3 -98
  5. data/README.md +5 -16
  6. data/Rakefile +160 -1
  7. data/dpl-anynines.gemspec +3 -0
  8. data/dpl-atlas.gemspec +3 -0
  9. data/dpl-azure_webapps.gemspec +3 -0
  10. data/dpl-bintray.gemspec +3 -0
  11. data/dpl-bitballoon.gemspec +3 -0
  12. data/dpl-bluemix_cloud_foundry.gemspec +3 -0
  13. data/dpl-boxfuse.gemspec +3 -0
  14. data/dpl-catalyze.gemspec +3 -0
  15. data/dpl-chef_supermarket.gemspec +8 -0
  16. data/dpl-cloud66.gemspec +3 -0
  17. data/dpl-cloud_files.gemspec +3 -0
  18. data/dpl-cloud_foundry.gemspec +3 -0
  19. data/dpl-code_deploy.gemspec +3 -0
  20. data/dpl-deis.gemspec +3 -0
  21. data/dpl-divshot.gemspec +3 -0
  22. data/dpl-elastic_beanstalk.gemspec +3 -0
  23. data/dpl-engine_yard.gemspec +3 -0
  24. data/dpl-firebase.gemspec +3 -0
  25. data/dpl-gae.gemspec +3 -0
  26. data/dpl-gcs.gemspec +3 -0
  27. data/dpl-hackage.gemspec +3 -0
  28. data/dpl-heroku.gemspec +3 -0
  29. data/dpl-lambda.gemspec +3 -0
  30. data/dpl-launchpad.gemspec +3 -0
  31. data/dpl-modulus.gemspec +3 -0
  32. data/dpl-npm.gemspec +3 -0
  33. data/dpl-openshift.gemspec +3 -0
  34. data/dpl-ops_works.gemspec +3 -0
  35. data/dpl-packagecloud.gemspec +3 -0
  36. data/dpl-pages.gemspec +3 -0
  37. data/dpl-puppet_forge.gemspec +3 -0
  38. data/dpl-pypi.gemspec +3 -0
  39. data/dpl-releases.gemspec +3 -0
  40. data/dpl-rubygems.gemspec +3 -0
  41. data/dpl-s3.gemspec +3 -0
  42. data/dpl-scalingo.gemspec +3 -0
  43. data/dpl-script.gemspec +3 -0
  44. data/dpl-surge.gemspec +3 -0
  45. data/dpl-testfairy.gemspec +3 -0
  46. data/dpl-transifex.gemspec +3 -0
  47. data/dpl.gemspec +2 -31
  48. data/gemspec_helper.rb +49 -0
  49. data/lib/dpl/provider.rb +101 -58
  50. data/lib/dpl/version.rb +1 -1
  51. data/spec/provider_spec.rb +15 -34
  52. metadata +76 -107
  53. data/lib/dpl/provider/anynines.rb +0 -13
  54. data/lib/dpl/provider/appfog.rb +0 -21
  55. data/lib/dpl/provider/atlas.rb +0 -108
  56. data/lib/dpl/provider/azure_webapps.rb +0 -48
  57. data/lib/dpl/provider/bintray.rb +0 -509
  58. data/lib/dpl/provider/bitballoon.rb +0 -22
  59. data/lib/dpl/provider/bluemix_cloud_foundry.rb +0 -23
  60. data/lib/dpl/provider/boxfuse.rb +0 -57
  61. data/lib/dpl/provider/catalyze.rb +0 -49
  62. data/lib/dpl/provider/chef_supermarket.rb +0 -85
  63. data/lib/dpl/provider/cloud66.rb +0 -38
  64. data/lib/dpl/provider/cloud_files.rb +0 -38
  65. data/lib/dpl/provider/cloud_foundry.rb +0 -43
  66. data/lib/dpl/provider/code_deploy.rb +0 -154
  67. data/lib/dpl/provider/deis.rb +0 -128
  68. data/lib/dpl/provider/divshot.rb +0 -23
  69. data/lib/dpl/provider/elastic_beanstalk.rb +0 -195
  70. data/lib/dpl/provider/engine_yard.rb +0 -90
  71. data/lib/dpl/provider/firebase.rb +0 -27
  72. data/lib/dpl/provider/gae.rb +0 -97
  73. data/lib/dpl/provider/gcs.rb +0 -59
  74. data/lib/dpl/provider/hackage.rb +0 -29
  75. data/lib/dpl/provider/heroku.rb +0 -18
  76. data/lib/dpl/provider/heroku/api.rb +0 -98
  77. data/lib/dpl/provider/heroku/generic.rb +0 -94
  78. data/lib/dpl/provider/heroku/git.rb +0 -28
  79. data/lib/dpl/provider/lambda.rb +0 -236
  80. data/lib/dpl/provider/launchpad.rb +0 -48
  81. data/lib/dpl/provider/modulus.rb +0 -23
  82. data/lib/dpl/provider/npm.rb +0 -64
  83. data/lib/dpl/provider/openshift.rb +0 -59
  84. data/lib/dpl/provider/ops_works.rb +0 -132
  85. data/lib/dpl/provider/packagecloud.rb +0 -144
  86. data/lib/dpl/provider/pages.rb +0 -212
  87. data/lib/dpl/provider/puppet_forge.rb +0 -43
  88. data/lib/dpl/provider/pypi.rb +0 -103
  89. data/lib/dpl/provider/releases.rb +0 -139
  90. data/lib/dpl/provider/rubygems.rb +0 -51
  91. data/lib/dpl/provider/s3.rb +0 -123
  92. data/lib/dpl/provider/scalingo.rb +0 -97
  93. data/lib/dpl/provider/script.rb +0 -29
  94. data/lib/dpl/provider/surge.rb +0 -33
  95. data/lib/dpl/provider/testfairy.rb +0 -111
  96. data/lib/dpl/provider/transifex.rb +0 -45
  97. data/spec/provider/anynines_spec.rb +0 -20
  98. data/spec/provider/appfog_spec.rb +0 -35
  99. data/spec/provider/atlas_spec.rb +0 -99
  100. data/spec/provider/azure_webapps_spec.rb +0 -95
  101. data/spec/provider/bintray_spec.rb +0 -259
  102. data/spec/provider/bitballoon_spec.rb +0 -32
  103. data/spec/provider/bluemixcloudfoundry_spec.rb +0 -23
  104. data/spec/provider/boxfuse_spec.rb +0 -16
  105. data/spec/provider/catalyze_spec.rb +0 -39
  106. data/spec/provider/chef_supermarket_spec.rb +0 -51
  107. data/spec/provider/cloud66_spec.rb +0 -44
  108. data/spec/provider/cloud_files_spec.rb +0 -88
  109. data/spec/provider/cloudfoundry_spec.rb +0 -71
  110. data/spec/provider/code_deploy_spec.rb +0 -366
  111. data/spec/provider/deis_spec.rb +0 -116
  112. data/spec/provider/divshot_spec.rb +0 -28
  113. data/spec/provider/elastic_beanstalk_spec.rb +0 -209
  114. data/spec/provider/firebase_spec.rb +0 -40
  115. data/spec/provider/gae_spec.rb +0 -26
  116. data/spec/provider/gcs_spec.rb +0 -115
  117. data/spec/provider/hackage_spec.rb +0 -47
  118. data/spec/provider/heroku_spec.rb +0 -357
  119. data/spec/provider/lambda_spec.rb +0 -432
  120. data/spec/provider/launchpad_spec.rb +0 -33
  121. data/spec/provider/modulus_spec.rb +0 -29
  122. data/spec/provider/npm_spec.rb +0 -95
  123. data/spec/provider/openshift_spec.rb +0 -91
  124. data/spec/provider/ops_works_spec.rb +0 -127
  125. data/spec/provider/packagecloud_spec.rb +0 -56
  126. data/spec/provider/puppet_forge_spec.rb +0 -60
  127. data/spec/provider/pypi_spec.rb +0 -105
  128. data/spec/provider/releases_spec.rb +0 -303
  129. data/spec/provider/rubygems_spec.rb +0 -106
  130. data/spec/provider/s3_spec.rb +0 -174
  131. data/spec/provider/scalingo_spec.rb +0 -64
  132. data/spec/provider/script_spec.rb +0 -26
  133. data/spec/provider/surge_spec.rb +0 -15
  134. data/spec/provider/testfairy_spec.rb +0 -65
  135. data/spec/provider/transifex_spec.rb +0 -110
@@ -1,116 +0,0 @@
1
- require 'spec_helper'
2
- require 'dpl/provider/deis'
3
-
4
- describe DPL::Provider::Deis do
5
- let(:options) do
6
- {
7
- :app => 'example',
8
- :key_name => 'key',
9
- :controller => 'https://deis.deisapps.com',
10
- :username => 'travis',
11
- :password => 'secret',
12
- :cli_version => 'v2.0.0'
13
- }
14
- end
15
-
16
- subject :provider do
17
- described_class.new(DummyContext.new, options)
18
- end
19
-
20
- describe "#install_deploy_dependencies" do
21
- example do
22
- expect(provider.context).to receive(:shell).with(
23
- 'curl -sSL http://deis.io/deis-cli/install-v2.sh | bash -x -s v2.0.0'
24
- ).and_return(true)
25
- provider.install_deploy_dependencies
26
- end
27
- end
28
-
29
- describe "#needs_key?" do
30
- example do
31
- expect(provider.needs_key?).to eq(true)
32
- end
33
- end
34
-
35
- describe "#check_auth" do
36
- example do
37
- expect(provider.context).to receive(:shell).with(
38
- './deis login https://deis.deisapps.com --username=travis --password=secret'
39
- ).and_return(true)
40
- provider.check_auth
41
- end
42
- end
43
-
44
- describe "#check_app" do
45
- example do
46
- expect(provider.context).to receive(:shell).with(
47
- './deis apps:info --app=example'
48
- ).and_return(true)
49
- provider.check_app
50
- end
51
- end
52
-
53
- describe "#setup_key" do
54
- let(:ssh_config_handle) { double 'ssh_config_handle' }
55
- let(:ssh_config) { File.join(Dir.home, '.ssh', 'config') }
56
- let(:identity_file) { File.join(Dir.pwd, 'key_file') }
57
- example do
58
- expect(provider.context).to receive(:shell).with(
59
- './deis keys:add key_file'
60
- ).and_return(true)
61
- provider.setup_key('key_file')
62
- end
63
- end
64
-
65
- describe "#setup_git_ssh" do
66
- example do
67
- expect(provider.context).to receive(:shell).with(
68
- /grep -c 'PTY allocation request failed'/
69
- ).and_return(false)
70
-
71
- expect(provider.context).to receive(:shell).with(
72
- /grep -c 'PTY allocation request failed'/
73
- ).and_return(true)
74
-
75
- provider.setup_git_ssh('foo', 'key_file')
76
- end
77
- end
78
-
79
- describe "#remove_key" do
80
- example do
81
- expect(provider.context).to receive(:shell).with(
82
- './deis keys:remove key'
83
- ).and_return(true)
84
- provider.remove_key
85
- end
86
- end
87
-
88
- describe "#push_app" do
89
- example do
90
- expect(provider.context).to receive(:shell).with(
91
- "bash -c 'git push ssh://git@deis-builder.deisapps.com:2222/example.git HEAD:refs/heads/master -f 2>&1 | tr -dc \"[:alnum:][:space:][:punct:]\" | sed -E \"s/remote: (\\[1G)+//\" | sed \"s/\\[K$//\"; exit ${PIPESTATUS[0]}'"
92
- ).and_return(true)
93
- provider.push_app
94
- end
95
- end
96
-
97
- describe "#run" do
98
- example do
99
- expect(provider.context).to receive(:shell).with(
100
- './deis run -a example -- shell command'
101
- ).and_return(true)
102
- provider.run('shell command')
103
- end
104
- end
105
-
106
- describe "#cleanup" do
107
- example do
108
- expect(provider.context).to receive(:shell).with('mv deis ~/deis')
109
- expect(provider.context).to receive(:shell).with('mv .dpl ~/dpl')
110
- expect(provider.context).to receive(:shell).with('git stash --all')
111
- expect(provider.context).to receive(:shell).with('mv ~/dpl .dpl')
112
- expect(provider.context).to receive(:shell).with('mv ~/deis deis')
113
- provider.cleanup
114
- end
115
- end
116
- end
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
- require 'dpl/provider/divshot'
3
-
4
- describe DPL::Provider::Divshot do
5
- subject :provider do
6
- described_class.new DummyContext.new, :api_key => 'abc123'
7
- end
8
-
9
- describe "#check_auth" do
10
- it 'should require an api key' do
11
- provider.options.update(:api_key => nil)
12
- expect{ provider.check_auth }.to raise_error("must supply an api key")
13
- end
14
- end
15
-
16
- describe "#push_app" do
17
- it 'should include the environment specified' do
18
- provider.options.update(:environment => 'development')
19
- expect(provider.context).to receive(:shell).with("divshot push development --token=abc123")
20
- provider.push_app
21
- end
22
-
23
- it 'should default to production' do
24
- expect(provider.context).to receive(:shell).with("divshot push production --token=abc123")
25
- provider.push_app
26
- end
27
- end
28
- end
@@ -1,209 +0,0 @@
1
- require 'spec_helper'
2
- require 'aws-sdk'
3
- require 'dpl/provider'
4
- require 'dpl/provider/elastic_beanstalk'
5
-
6
- describe DPL::Provider::ElasticBeanstalk do
7
-
8
- let(:access_key_id) { 'qwertyuiopasdfghjklz' }
9
- let(:secret_access_key) { 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz' }
10
- let(:region) { 'us-west-2' }
11
- let(:app) { 'example-app' }
12
- let(:env) { 'live' }
13
- let(:bucket_name) { "travis-elasticbeanstalk-test-builds-#{region}" }
14
- let(:bucket_path) { "some/app"}
15
- let(:only_create_app_version) { nil }
16
- let(:wait_until_deployed) { nil }
17
-
18
- let(:bucket_mock) do
19
- dbl = double("bucket mock", write: nil)
20
- allow(dbl).to receive(:objects).and_return(double("Hash", :[] => dbl))
21
- dbl
22
- end
23
-
24
- let(:s3_mock) do
25
- hash_dbl = double("Hash", :[] => bucket_mock, :map => [])
26
- double("Aws::S3", bucket: hash_dbl, config: hash_dbl)
27
- end
28
-
29
- let(:io_double) do
30
- double('IO', open: Object.new)
31
- end
32
-
33
- let(:s3_obj_double) do
34
- double("Aws::S3::Object", put: Object.new)
35
- end
36
-
37
- subject :provider do
38
- described_class.new(
39
- DummyContext.new, :access_key_id => access_key_id, :secret_access_key => secret_access_key,
40
- :region => region, :app => app, :env => env, :bucket_name => bucket_name, :bucket_path => bucket_path,
41
- :only_create_app_version => only_create_app_version,
42
- :wait_until_deployed => wait_until_deployed
43
- )
44
- end
45
-
46
- subject :provider_without_bucket_path do
47
- described_class.new(
48
- DummyContext.new, :access_key_id => access_key_id, :secret_access_key => secret_access_key,
49
- :region => region, :app => app, :env => env, :bucket_name => bucket_name
50
- )
51
- end
52
-
53
- describe "#check_auth" do
54
- example do
55
- expect(Aws.config).to receive(:update)
56
- provider.check_auth
57
- end
58
- end
59
-
60
- describe "#push_app" do
61
-
62
- let(:app_version) { Object.new }
63
-
64
- before :each do
65
- allow(io_double).to receive(:open)
66
- allow(s3_obj_double).to receive(:put).with(anything).and_return(Object.new)
67
- allow(s3_mock).to receive(:bucket).with(bucket_name).and_return(bucket_mock)
68
- expect(Pathname).to receive(:new).and_return(io_double)
69
- end
70
-
71
- example 'bucket exists already' do
72
- allow(s3_mock).to receive(:bucket).with(bucket_name).and_return(bucket_mock)
73
- allow(bucket_mock).to receive(:exists?).and_return(true)
74
- allow(bucket_mock).to receive(:object).with("some/app/file.zip").and_return(s3_obj_double)
75
-
76
- expect(provider).to receive(:s3).and_return(s3_mock).twice
77
- expect(provider).not_to receive(:create_bucket)
78
- expect(provider).to receive(:create_zip).and_return('/path/to/file.zip')
79
- expect(provider).to receive(:archive_name).and_return('file.zip')
80
- expect(provider).to receive(:upload).with('file.zip', '/path/to/file.zip').and_call_original
81
- expect(provider).to receive(:sleep).with(5)
82
- expect(provider).to receive(:create_app_version).with(s3_obj_double).and_return(app_version)
83
- expect(provider).to receive(:update_app).with(app_version)
84
-
85
- provider.push_app
86
- end
87
-
88
- example 'bucket doesnt exist yet' do
89
- allow(s3_mock).to receive(:bucket).with(bucket_name).and_return(bucket_mock)
90
- allow(bucket_mock).to receive(:exists?).and_return(false)
91
- allow(bucket_mock).to receive(:object).with("some/app/file.zip").and_return(s3_obj_double)
92
-
93
- expect(provider).to receive(:s3).and_return(s3_mock).twice
94
- expect(provider).to receive(:create_bucket)
95
- expect(provider).to receive(:create_zip).and_return('/path/to/file.zip')
96
- expect(provider).to receive(:archive_name).and_return('file.zip')
97
- expect(provider).to receive(:upload).with('file.zip', '/path/to/file.zip').and_call_original
98
- expect(provider).to receive(:sleep).with(5)
99
- expect(provider).to receive(:create_app_version).with(s3_obj_double).and_return(app_version)
100
- expect(provider).to receive(:update_app).with(app_version)
101
-
102
- provider.push_app
103
- end
104
-
105
- context 'only creates app version' do
106
- let(:only_create_app_version) { true }
107
-
108
- example 'verify the app is not updated' do
109
- allow(s3_mock).to receive(:bucket).with(bucket_name).and_return(bucket_mock)
110
- allow(bucket_mock).to receive(:exists?).and_return(false)
111
- allow(bucket_mock).to receive(:create)
112
- allow(bucket_mock).to receive(:object).with("some/app/file.zip").and_return(s3_obj_double)
113
-
114
- expect(provider).to receive(:s3).and_return(s3_mock).at_least(3).times
115
- expect(provider).to receive(:create_zip).and_return('/path/to/file.zip')
116
- expect(provider).to receive(:archive_name).and_return('file.zip')
117
- expect(provider).to receive(:upload).with('file.zip', '/path/to/file.zip').and_call_original
118
- expect(provider).to receive(:sleep).with(5)
119
- expect(provider).to receive(:create_app_version).with(s3_obj_double).and_return(app_version)
120
- expect(provider).not_to receive(:update_app).with(app_version)
121
-
122
- provider.push_app
123
- end
124
- end
125
-
126
- context 'When the bucket_path option is not set' do
127
- example 'Does not prepend bucket_path to the s3 bucket' do
128
- allow(s3_mock).to receive(:bucket).with(bucket_name).and_return(bucket_mock)
129
- allow(bucket_mock).to receive(:object).with("file.zip").and_return(s3_obj_double)
130
- allow(bucket_mock).to receive(:exists?).and_return(false)
131
- allow(bucket_mock).to receive(:create)
132
-
133
- expect(provider_without_bucket_path).to receive(:s3).and_return(s3_mock).at_least(3).times
134
- expect(provider_without_bucket_path).to receive(:create_zip).and_return('/path/to/file.zip')
135
- expect(provider_without_bucket_path).to receive(:archive_name).and_return('file.zip')
136
- expect(provider_without_bucket_path).to receive(:bucket_path).and_return(nil)
137
- expect(provider_without_bucket_path).to receive(:upload).with('file.zip', '/path/to/file.zip').and_call_original
138
- expect(provider_without_bucket_path).to receive(:sleep).with(5)
139
- expect(provider_without_bucket_path).to receive(:create_app_version).with(s3_obj_double).and_return(app_version)
140
- expect(provider_without_bucket_path).to receive(:update_app).with(app_version)
141
-
142
- provider_without_bucket_path.push_app
143
- end
144
- end
145
-
146
- context 'When wait_until_deployed option is set' do
147
- let(:wait_until_deployed) { true }
148
-
149
- example 'Waits until deployment completes' do
150
- allow(bucket_mock).to receive(:exists?).and_return(false)
151
- allow(bucket_mock).to receive(:create)
152
- allow(bucket_mock).to receive(:object).with("some/app/file.zip").and_return(s3_obj_double)
153
-
154
- expect(provider).to receive(:s3).and_return(s3_mock).at_least(3).times
155
- expect(provider).to receive(:create_zip).and_return('/path/to/file.zip')
156
- expect(provider).to receive(:archive_name).and_return('file.zip')
157
- expect(provider).to receive(:upload).with('file.zip', '/path/to/file.zip').and_call_original
158
- expect(provider).to receive(:sleep).with(5)
159
- expect(provider).to receive(:create_app_version).with(s3_obj_double).and_return(app_version)
160
- expect(provider).to receive(:update_app).with(app_version)
161
- expect(provider).to receive(:wait_until_deployed)
162
-
163
- provider.push_app
164
- end
165
- end
166
-
167
- context "when zip_file option is given" do
168
- before :each do
169
- allow(bucket_mock).to receive(:object).with("some/app/file.zip").and_return(s3_obj_double)
170
- allow(bucket_mock).to receive(:exists?).and_return(false)
171
- allow(bucket_mock).to receive(:create)
172
- expect(provider).to receive(:s3).and_return(s3_mock).at_least(3).times
173
- expect(provider).to receive(:archive_name).and_return('file.zip')
174
- expect(provider).to receive(:sleep).with(5)
175
- expect(provider).to receive(:create_app_version).with(s3_obj_double).and_return(app_version)
176
- expect(provider).to receive(:update_app).with(app_version)
177
- end
178
-
179
- example 'zip_file is an absolute path' do
180
- provider.options.update(:zip_file => '/absolute/path/to/file.zip')
181
- expect(provider).to receive(:upload).with('file.zip', '/absolute/path/to/file.zip').and_call_original
182
-
183
- provider.push_app
184
- end
185
-
186
- example 'zip_file is an relative path' do
187
- provider.options.update(:zip_file => 'relative/path/to/file.zip')
188
- expect(provider).to receive(:upload).with('file.zip', File.join(Dir.pwd, 'relative/path/to/file.zip')).and_call_original
189
-
190
- provider.push_app
191
- end
192
-
193
- example 'zip_file is a path with ~/' do
194
- provider.options.update(:zip_file => '~/file.zip')
195
- expect(provider).to receive(:upload).with('file.zip', File.join(ENV['HOME'], 'file.zip')).and_call_original
196
-
197
- provider.push_app
198
- end
199
-
200
- example 'zip_file is has no path' do
201
- provider.options.update(:zip_file => 'file.zip')
202
- expect(provider).to receive(:upload).with('file.zip', File.join(Dir.pwd, 'file.zip')).and_call_original
203
-
204
- provider.push_app
205
- end
206
-
207
- end
208
- end
209
- end
@@ -1,40 +0,0 @@
1
- require 'spec_helper'
2
- require 'dpl/provider/firebase'
3
-
4
- describe DPL::Provider::Firebase do
5
- subject :provider do
6
- described_class.new DummyContext.new, :token => 'abc123'
7
- end
8
-
9
- describe "#check_auth" do
10
- it 'should require a token if no FIREBASE_TOKEN is set' do
11
- provider.options.update(:token => nil)
12
- expect{ provider.check_auth }.to raise_error("must supply token option or FIREBASE_TOKEN environment variable")
13
- end
14
-
15
- it 'should allow no token if FIREBASE_TOKEN is set' do
16
- provider.options.update(:token => nil)
17
- provider.context.env['FIREBASE_TOKEN'] = 'abc123'
18
- expect{ provider.check_auth }.not_to raise_error
19
- end
20
- end
21
-
22
- describe "#push_app" do
23
- it 'should include the project specified' do
24
- provider.options.update(:project => 'myapp-dev')
25
- expect(provider.context).to receive(:shell).with("firebase deploy --non-interactive --project myapp-dev --token 'abc123'")
26
- provider.push_app
27
- end
28
-
29
- it 'should include the message specified' do
30
- provider.options.update(:message => 'test message')
31
- expect(provider.context).to receive(:shell).with("firebase deploy --non-interactive --message 'test message' --token 'abc123'")
32
- provider.push_app
33
- end
34
-
35
- it 'should default to no project override' do
36
- expect(provider.context).to receive(:shell).with("firebase deploy --non-interactive --token 'abc123'")
37
- provider.push_app
38
- end
39
- end
40
- end
@@ -1,26 +0,0 @@
1
- require 'spec_helper'
2
- require 'dpl/provider/gae'
3
-
4
- describe DPL::Provider::GAE do
5
- subject :provider do
6
- described_class.new(DummyContext.new, project: 'test')
7
- end
8
-
9
-
10
- describe '#push_app' do
11
- example 'with defaults' do
12
- expect(provider.context.env).to receive(:[]).with('HOME').and_return('/home/travis')
13
- allow(provider.context).to receive(:shell).with("bash -c 'source /home/travis/virtualenv/python2.7/bin/activate; #{DPL::Provider::GAE::GCLOUD} --quiet --verbosity \"warning\" --project \"test\" app deploy \"app.yaml\" --promote'").and_return(true)
14
- provider.push_app
15
- end
16
- end
17
-
18
-
19
- describe '#with_python_2_7' do
20
- example 'with apostrophe' do
21
- expect(provider.context.env).to receive(:[]).with('HOME').and_return('/home/travis')
22
- allow(provider.context).to receive(:shell).with("bash -c 'source /home/travis/virtualenv/python2.7/bin/activate; python -c '\\''import sys; print(sys.version)'\\'''").and_return(true)
23
- provider.with_python_2_7("python -c 'import sys; print(sys.version)'")
24
- end
25
- end
26
- end
@@ -1,115 +0,0 @@
1
- require 'spec_helper'
2
- require 'dpl/provider/gcs'
3
-
4
- describe DPL::Provider::GCS do
5
-
6
- subject :provider do
7
- described_class.new(DummyContext.new, :access_key_id => 'qwertyuiopasdfghjklz', :secret_access_key => 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz', :bucket => 'my-bucket')
8
- end
9
-
10
- describe "#check_auth" do
11
- example do
12
- expect(provider).to receive(:log).with("Logging in with Access Key: ****************jklz")
13
- provider.check_auth
14
- end
15
- end
16
-
17
- describe "#needs_key?" do
18
- example do
19
- expect(provider.needs_key?).to eq(false)
20
- end
21
- end
22
-
23
- describe "#upload_path" do
24
- example "Without: :upload_dir" do
25
- filename = "testfile.file"
26
-
27
- expect(provider.upload_path(filename)).to eq("testfile.file")
28
- end
29
-
30
- example "With :upload_dir" do
31
- provider.options.update(:upload_dir => 'BUILD3')
32
- filename = "testfile.file"
33
-
34
- expect(provider.upload_path(filename)).to eq("BUILD3/testfile.file")
35
- end
36
- end
37
-
38
- describe "#push_app" do
39
- example "Without local_dir" do
40
- expect(Dir).to receive(:chdir).with(Dir.pwd)
41
- provider.push_app
42
- end
43
-
44
- example "With local_dir" do
45
- provider.options.update(:local_dir => 'BUILD')
46
-
47
- expect(Dir).to receive(:chdir).with('BUILD')
48
- provider.push_app
49
- end
50
-
51
- example "Sends MIME type" do
52
- expect(Dir).to receive(:glob).and_yield(__FILE__)
53
- expect_any_instance_of(GStore::Client).to receive(:put_object).with(
54
- anything(),
55
- anything(),
56
- hash_including(:headers => {:"Content-Type" => 'application/x-ruby'})
57
- )
58
- provider.push_app
59
- end
60
-
61
- example "Sets Cache" do
62
- provider.options.update(:cache_control => "max-age=99999999")
63
- expect(Dir).to receive(:glob).and_yield(__FILE__)
64
- expect_any_instance_of(GStore::Client).to receive(:put_object).with(
65
- anything(),
66
- anything(),
67
- hash_including(:headers => hash_including("Cache-Control" => 'max-age=99999999'))
68
- )
69
- provider.push_app
70
- end
71
-
72
- example "Sets ACL" do
73
- provider.options.update(:acl => "public-read")
74
- expect(Dir).to receive(:glob).and_yield(__FILE__)
75
- expect_any_instance_of(GStore::Client).to receive(:put_object).with(
76
- anything(),
77
- anything(),
78
- hash_including(:headers => hash_including("x-goog-acl" => 'public-read'))
79
- )
80
- provider.push_app
81
- end
82
-
83
- example "when detect_encoding is set" do
84
- path = 'foo.js'
85
- provider.options.update(:detect_encoding => true)
86
- expect(Dir).to receive(:glob).and_yield(path)
87
- expect(provider).to receive(:`).at_least(1).times.with("file '#{path}'").and_return('gzip compressed')
88
- expect(File).to receive(:read).with(path).and_return("")
89
- expect_any_instance_of(GStore::Client).to receive(:put_object).with(
90
- anything(),
91
- anything(),
92
- hash_including(:headers => hash_including("Content-Encoding" => 'gzip'))
93
- )
94
- provider.push_app
95
- end
96
-
97
- example "With dot_match" do
98
- provider.options.update(:dot_match => true)
99
-
100
- expect(Dir).to receive(:glob).with('**/*', File::FNM_DOTMATCH)
101
- provider.push_app
102
- end
103
-
104
- end
105
-
106
- describe '#client' do
107
- example do
108
- expect(GStore::Client).to receive(:new).with(
109
- :access_key => 'qwertyuiopasdfghjklz',
110
- :secret_key => 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz'
111
- )
112
- provider.client
113
- end
114
- end
115
- end