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.
- checksums.yaml +5 -5
- data/.gitignore +2 -0
- data/.travis.yml +42 -21
- data/Gemfile +3 -98
- data/README.md +5 -16
- data/Rakefile +160 -1
- data/dpl-anynines.gemspec +3 -0
- data/dpl-atlas.gemspec +3 -0
- data/dpl-azure_webapps.gemspec +3 -0
- data/dpl-bintray.gemspec +3 -0
- data/dpl-bitballoon.gemspec +3 -0
- data/dpl-bluemix_cloud_foundry.gemspec +3 -0
- data/dpl-boxfuse.gemspec +3 -0
- data/dpl-catalyze.gemspec +3 -0
- data/dpl-chef_supermarket.gemspec +8 -0
- data/dpl-cloud66.gemspec +3 -0
- data/dpl-cloud_files.gemspec +3 -0
- data/dpl-cloud_foundry.gemspec +3 -0
- data/dpl-code_deploy.gemspec +3 -0
- data/dpl-deis.gemspec +3 -0
- data/dpl-divshot.gemspec +3 -0
- data/dpl-elastic_beanstalk.gemspec +3 -0
- data/dpl-engine_yard.gemspec +3 -0
- data/dpl-firebase.gemspec +3 -0
- data/dpl-gae.gemspec +3 -0
- data/dpl-gcs.gemspec +3 -0
- data/dpl-hackage.gemspec +3 -0
- data/dpl-heroku.gemspec +3 -0
- data/dpl-lambda.gemspec +3 -0
- data/dpl-launchpad.gemspec +3 -0
- data/dpl-modulus.gemspec +3 -0
- data/dpl-npm.gemspec +3 -0
- data/dpl-openshift.gemspec +3 -0
- data/dpl-ops_works.gemspec +3 -0
- data/dpl-packagecloud.gemspec +3 -0
- data/dpl-pages.gemspec +3 -0
- data/dpl-puppet_forge.gemspec +3 -0
- data/dpl-pypi.gemspec +3 -0
- data/dpl-releases.gemspec +3 -0
- data/dpl-rubygems.gemspec +3 -0
- data/dpl-s3.gemspec +3 -0
- data/dpl-scalingo.gemspec +3 -0
- data/dpl-script.gemspec +3 -0
- data/dpl-surge.gemspec +3 -0
- data/dpl-testfairy.gemspec +3 -0
- data/dpl-transifex.gemspec +3 -0
- data/dpl.gemspec +2 -31
- data/gemspec_helper.rb +49 -0
- data/lib/dpl/provider.rb +101 -58
- data/lib/dpl/version.rb +1 -1
- data/spec/provider_spec.rb +15 -34
- metadata +76 -107
- data/lib/dpl/provider/anynines.rb +0 -13
- data/lib/dpl/provider/appfog.rb +0 -21
- data/lib/dpl/provider/atlas.rb +0 -108
- data/lib/dpl/provider/azure_webapps.rb +0 -48
- data/lib/dpl/provider/bintray.rb +0 -509
- data/lib/dpl/provider/bitballoon.rb +0 -22
- data/lib/dpl/provider/bluemix_cloud_foundry.rb +0 -23
- data/lib/dpl/provider/boxfuse.rb +0 -57
- data/lib/dpl/provider/catalyze.rb +0 -49
- data/lib/dpl/provider/chef_supermarket.rb +0 -85
- data/lib/dpl/provider/cloud66.rb +0 -38
- data/lib/dpl/provider/cloud_files.rb +0 -38
- data/lib/dpl/provider/cloud_foundry.rb +0 -43
- data/lib/dpl/provider/code_deploy.rb +0 -154
- data/lib/dpl/provider/deis.rb +0 -128
- data/lib/dpl/provider/divshot.rb +0 -23
- data/lib/dpl/provider/elastic_beanstalk.rb +0 -195
- data/lib/dpl/provider/engine_yard.rb +0 -90
- data/lib/dpl/provider/firebase.rb +0 -27
- data/lib/dpl/provider/gae.rb +0 -97
- data/lib/dpl/provider/gcs.rb +0 -59
- data/lib/dpl/provider/hackage.rb +0 -29
- data/lib/dpl/provider/heroku.rb +0 -18
- data/lib/dpl/provider/heroku/api.rb +0 -98
- data/lib/dpl/provider/heroku/generic.rb +0 -94
- data/lib/dpl/provider/heroku/git.rb +0 -28
- data/lib/dpl/provider/lambda.rb +0 -236
- data/lib/dpl/provider/launchpad.rb +0 -48
- data/lib/dpl/provider/modulus.rb +0 -23
- data/lib/dpl/provider/npm.rb +0 -64
- data/lib/dpl/provider/openshift.rb +0 -59
- data/lib/dpl/provider/ops_works.rb +0 -132
- data/lib/dpl/provider/packagecloud.rb +0 -144
- data/lib/dpl/provider/pages.rb +0 -212
- data/lib/dpl/provider/puppet_forge.rb +0 -43
- data/lib/dpl/provider/pypi.rb +0 -103
- data/lib/dpl/provider/releases.rb +0 -139
- data/lib/dpl/provider/rubygems.rb +0 -51
- data/lib/dpl/provider/s3.rb +0 -123
- data/lib/dpl/provider/scalingo.rb +0 -97
- data/lib/dpl/provider/script.rb +0 -29
- data/lib/dpl/provider/surge.rb +0 -33
- data/lib/dpl/provider/testfairy.rb +0 -111
- data/lib/dpl/provider/transifex.rb +0 -45
- data/spec/provider/anynines_spec.rb +0 -20
- data/spec/provider/appfog_spec.rb +0 -35
- data/spec/provider/atlas_spec.rb +0 -99
- data/spec/provider/azure_webapps_spec.rb +0 -95
- data/spec/provider/bintray_spec.rb +0 -259
- data/spec/provider/bitballoon_spec.rb +0 -32
- data/spec/provider/bluemixcloudfoundry_spec.rb +0 -23
- data/spec/provider/boxfuse_spec.rb +0 -16
- data/spec/provider/catalyze_spec.rb +0 -39
- data/spec/provider/chef_supermarket_spec.rb +0 -51
- data/spec/provider/cloud66_spec.rb +0 -44
- data/spec/provider/cloud_files_spec.rb +0 -88
- data/spec/provider/cloudfoundry_spec.rb +0 -71
- data/spec/provider/code_deploy_spec.rb +0 -366
- data/spec/provider/deis_spec.rb +0 -116
- data/spec/provider/divshot_spec.rb +0 -28
- data/spec/provider/elastic_beanstalk_spec.rb +0 -209
- data/spec/provider/firebase_spec.rb +0 -40
- data/spec/provider/gae_spec.rb +0 -26
- data/spec/provider/gcs_spec.rb +0 -115
- data/spec/provider/hackage_spec.rb +0 -47
- data/spec/provider/heroku_spec.rb +0 -357
- data/spec/provider/lambda_spec.rb +0 -432
- data/spec/provider/launchpad_spec.rb +0 -33
- data/spec/provider/modulus_spec.rb +0 -29
- data/spec/provider/npm_spec.rb +0 -95
- data/spec/provider/openshift_spec.rb +0 -91
- data/spec/provider/ops_works_spec.rb +0 -127
- data/spec/provider/packagecloud_spec.rb +0 -56
- data/spec/provider/puppet_forge_spec.rb +0 -60
- data/spec/provider/pypi_spec.rb +0 -105
- data/spec/provider/releases_spec.rb +0 -303
- data/spec/provider/rubygems_spec.rb +0 -106
- data/spec/provider/s3_spec.rb +0 -174
- data/spec/provider/scalingo_spec.rb +0 -64
- data/spec/provider/script_spec.rb +0 -26
- data/spec/provider/surge_spec.rb +0 -15
- data/spec/provider/testfairy_spec.rb +0 -65
- data/spec/provider/transifex_spec.rb +0 -110
data/spec/provider/deis_spec.rb
DELETED
@@ -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
|
data/spec/provider/gae_spec.rb
DELETED
@@ -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
|
data/spec/provider/gcs_spec.rb
DELETED
@@ -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
|