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,45 +0,0 @@
1
- module DPL
2
- class Provider
3
- class Transifex < Provider
4
- experimental 'Transifex'
5
-
6
- DEFAULT_CLIENT_VERSION = '>=0.11'
7
- DEFAULT_HOSTNAME = 'https://www.transifex.com'
8
-
9
- def install_deploy_dependencies
10
- cli_version = options[:cli_version] || DEFAULT_CLIENT_VERSION
11
- self.class.pip 'transifex', 'transifex', cli_version
12
- end
13
-
14
- def needs_key?
15
- false
16
- end
17
-
18
- def check_auth
19
- install_deploy_dependencies
20
- write_transifexrc
21
- context.shell 'tx status'
22
- end
23
-
24
- def push_app
25
- source_push
26
- end
27
-
28
- def write_transifexrc
29
- File.open(File.expand_path('~/.transifexrc'), 'w') do |f|
30
- f.puts [
31
- "[#{options[:hostname] || DEFAULT_HOSTNAME}]",
32
- "hostname = #{options[:hostname] || DEFAULT_HOSTNAME}",
33
- "username = #{options[:username]}",
34
- "password = #{options[:password]}",
35
- "token = #{options[:token]}",
36
- ].join("\n")
37
- end
38
- end
39
-
40
- def source_push
41
- context.shell 'tx push --source --no-interactive', retry: true
42
- end
43
- end
44
- end
45
- end
@@ -1,20 +0,0 @@
1
- require 'spec_helper'
2
- require 'dpl/provider/anynines'
3
-
4
- describe DPL::Provider::Anynines do
5
- subject :provider do
6
- described_class.new(DummyContext.new, username: 'mallomar',
7
- password: 'myreallyawesomepassword',
8
- organization: 'myorg',
9
- space: 'outer')
10
- end
11
-
12
- describe "#check_auth" do
13
- example do
14
- expect(provider.context).to receive(:shell).with('test x$TRAVIS_OS_NAME = "xlinux" && rel="linux64-binary" || rel="macosx64"; wget "https://cli.run.pivotal.io/stable?release=${rel}&source=github" -qO cf.tgz && tar -zxvf cf.tgz && rm cf.tgz')
15
- expect(provider.context).to receive(:shell).with('./cf api https://api.aws.ie.a9s.eu')
16
- expect(provider.context).to receive(:shell).with('./cf login -u mallomar -p myreallyawesomepassword -o myorg -s outer')
17
- provider.check_auth
18
- end
19
- end
20
- end
@@ -1,35 +0,0 @@
1
- require 'spec_helper'
2
- require 'dpl/provider/appfog'
3
-
4
- describe DPL::Provider::Appfog do
5
- subject :provider do
6
- described_class.new(DummyContext.new, :email => 'blah@foo.com', :password => 'bar')
7
- end
8
-
9
- describe "#check_auth" do
10
- example do
11
- expect(provider.context).to receive(:shell).with("af login --email=blah@foo.com --password=bar")
12
- provider.check_auth
13
- end
14
- end
15
-
16
- describe "#needs_key?" do
17
- example do
18
- expect(provider.needs_key?).to eq(false)
19
- end
20
- end
21
-
22
- describe "#push_app" do
23
- example "Without :app" do
24
- expect(provider.context).to receive(:shell).with("af update #{File.basename(Dir.getwd)}")
25
- expect(provider.context).to receive(:shell).with("af logout")
26
- provider.push_app
27
- end
28
- example "With :app" do
29
- provider.options.update(:app => 'test')
30
- expect(provider.context).to receive(:shell).with("af update test")
31
- expect(provider.context).to receive(:shell).with("af logout")
32
- provider.push_app
33
- end
34
- end
35
- end
@@ -1,99 +0,0 @@
1
- require 'securerandom'
2
-
3
- require 'spec_helper'
4
- require 'dpl/provider/atlas'
5
-
6
- describe DPL::Provider::Atlas do
7
- before :all do
8
- @origwd = Dir.pwd
9
- @tmpdir = Dir.mktmpdir
10
- @home = ENV['HOME']
11
- ENV['HOME'] = @tmpdir
12
- Dir.chdir(@tmpdir)
13
- end
14
-
15
- after :all do
16
- FileUtils.rm_rf(@tmpdir) if @tmpdir
17
- Dir.chdir(@origwd) if @origwd
18
- ENV['HOME'] = @home
19
- end
20
-
21
- let(:context) { DummyContext.new }
22
- let(:options) { { token: SecureRandom.hex(16), include: 'bin/*', exclude: 'tmp/*' } }
23
-
24
- subject(:provider) { described_class.new(context, options) }
25
-
26
- describe '#check_auth' do
27
- specify 'without ATLAS_TOKEN' do
28
- provider.options.delete(:token)
29
- expect { provider.check_auth }.to raise_error(DPL::Error)
30
- end
31
-
32
- specify 'with ATLAS_TOKEN' do
33
- provider.options.update(token: SecureRandom.hex(16))
34
- expect { provider.check_auth }.to_not raise_error
35
- end
36
- end
37
-
38
- describe '#needs_key?' do
39
- it { expect(provider.needs_key?).to eq(false) }
40
- end
41
-
42
- describe '#deploy' do
43
- specify 'without :app aborts' do
44
- provider.options.delete(:app)
45
- expect { provider.deploy }.to raise_error(DPL::Error)
46
- end
47
-
48
- specify 'with :app does not abort' do
49
- provider.options.update(app: 'dpl/testapp')
50
- expect { provider.deploy }.to_not raise_error
51
- end
52
- end
53
-
54
- describe 'building atlas-upload args' do
55
- context 'when full args are provided' do
56
- let(:options) { { args: '-whatever' } }
57
-
58
- it 'returns full args directly' do
59
- expect(provider.send(:atlas_upload_args)).to eql('-whatever')
60
- end
61
- end
62
-
63
- context 'when no arg keys are provided' do
64
- let(:options) { {} }
65
-
66
- it 'returns empty args' do
67
- expect(provider.send(:atlas_upload_args)).to eql('')
68
- end
69
- end
70
-
71
- [
72
- {
73
- options: { wat: true, debug: true },
74
- args: '-debug'
75
- },
76
- {
77
- options: { vcs: nil },
78
- args: '-vcs'
79
- },
80
- {
81
- options: { include: ['build/*', 'bin/*'], exclude: '*.log' },
82
- args: '-exclude="*.log" -include="build/*" -include="bin/*"'
83
- },
84
- {
85
- options: {
86
- include: 'bin/*',
87
- exclude: ['*.log', '*.out'],
88
- metadata: ['foo=bar', 'whatever=else']
89
- },
90
- args: '-exclude="*.log" -exclude="*.out" -include="bin/*" -metadata="foo=bar" -metadata="whatever=else"'
91
- }
92
- ].each_with_index do |example, i|
93
- context "with options #{example[:options].inspect}" do
94
- let(:options) { example[:options] }
95
- it { expect(provider.send(:atlas_upload_args)).to eql(example[:args]) }
96
- end
97
- end
98
- end
99
- end
@@ -1,95 +0,0 @@
1
- require 'spec_helper'
2
- require 'dpl/provider/azure_webapps'
3
-
4
-
5
- describe DPL::Provider::AzureWebApps do
6
- subject :provider do
7
- described_class.new(DummyContext.new,
8
- :username => 'myUsername',
9
- :password => 'myPassword',
10
- :site => 'myWebsite',
11
- :slot => 'mySlot')
12
- end
13
-
14
- subject :provider_without_slot do
15
- described_class.new(DummyContext.new,
16
- :username => 'myUsername',
17
- :password => 'myPassword',
18
- :site => 'myWebsite')
19
- end
20
-
21
-
22
- describe "#git_target" do
23
- example "With slot" do
24
- expect(provider.git_target).to eq('https://myUsername:myPassword@mySlot.scm.azurewebsites.net:443/myWebsite.git')
25
- end
26
-
27
- example "Without slot" do
28
- expect(provider_without_slot.git_target).to eq('https://myUsername:myPassword@myWebsite.scm.azurewebsites.net:443/myWebsite.git')
29
- end
30
- end
31
-
32
- describe "#needs_key?" do
33
- example do
34
- expect(provider.needs_key?).to eq(false)
35
- end
36
- end
37
-
38
- describe "#check_auth" do
39
- example "Without credentials" do
40
- provider.options.update(:username => nil)
41
- provider.options.update(:password => nil)
42
- provider.options.update(:site => nil)
43
- expect{provider.check_auth}.to raise_error(DPL::Error, 'missing Azure Git Deployment username')
44
- end
45
-
46
- example "Without username" do
47
- provider.options.update(:username => nil)
48
- expect{provider.check_auth}.to raise_error(DPL::Error, 'missing Azure Git Deployment username')
49
- end
50
-
51
- example "Without password" do
52
- provider.options.update(:password => nil)
53
- expect{provider.check_auth}.to raise_error(DPL::Error, 'missing Azure Git Deployment password')
54
- end
55
-
56
- example "Without WebApp name" do
57
- provider.options.update(:site => nil)
58
- expect{provider.check_auth}.to raise_error(DPL::Error, 'missing Azure Web App name')
59
- end
60
- end
61
-
62
- describe "push_app" do
63
- example "skip cleanup" do
64
- provider.options.update(:skip_cleanup => true)
65
- provider.options.update(:verbose => false)
66
- expect(provider.context).to receive(:shell).with('git checkout HEAD')
67
- expect(provider.context).to receive(:shell).with('git add . --all --force')
68
- expect(provider.context).to receive(:shell).with('git commit -m "Skip Cleanup Commit"')
69
- expect(provider.context).to receive(:shell).with('git push --force --quiet https://myUsername:myPassword@mySlot.scm.azurewebsites.net:443/myWebsite.git HEAD:refs/heads/master > /dev/null 2>&1')
70
- provider.push_app
71
- end
72
-
73
- example "Dont skip cleanup" do
74
- provider.options.update(:skip_cleanup => false)
75
- provider.options.update(:verbose => false)
76
- expect(provider.context).to receive(:shell).with('git push --force --quiet https://myUsername:myPassword@mySlot.scm.azurewebsites.net:443/myWebsite.git HEAD:refs/heads/master > /dev/null 2>&1')
77
- provider.push_app
78
- end
79
-
80
- example "Verbose" do
81
- provider.options.update(:skip_cleanup => false)
82
- provider.options.update(:verbose => true)
83
- expect(provider.context).to receive(:shell).with('git push --force --quiet https://myUsername:myPassword@mySlot.scm.azurewebsites.net:443/myWebsite.git HEAD:refs/heads/master')
84
- provider.push_app
85
- end
86
-
87
- example "Not verbose" do
88
- provider.options.update(:skip_cleanup => false)
89
- provider.options.update(:verbose => false)
90
- expect(provider.context).to receive(:shell).with('git push --force --quiet https://myUsername:myPassword@mySlot.scm.azurewebsites.net:443/myWebsite.git HEAD:refs/heads/master > /dev/null 2>&1')
91
- provider.push_app
92
- end
93
- end
94
-
95
- end
@@ -1,259 +0,0 @@
1
- require 'spec_helper'
2
- require 'dpl/provider/bintray'
3
-
4
- describe DPL::Provider::Bintray do
5
-
6
- subject :provider do
7
- described_class.new(DummyContext.new,
8
- :user => 'user',
9
- :key => 'key',
10
- :file => 'file',
11
- :dry_run => 'true')
12
- end
13
-
14
- subject :provider_with_passphrase do
15
- described_class.new(DummyContext.new,
16
- :user => 'user',
17
- :key => 'key',
18
- :file => 'file',
19
- :dry_run => 'true',
20
- :passphrase => 'passphrase')
21
- end
22
-
23
- describe "package_exists?" do
24
- example do
25
- descriptor = JSON.parse(descriptor_content)
26
- package = descriptor["package"]
27
- package_name = package["name"]
28
- subject = package["subject"]
29
- repo = package["repo"]
30
-
31
- init_provider(provider)
32
- expect(provider.package_exists_path).to eq("/packages/#{subject}/#{repo}/#{package_name}")
33
- end
34
- end
35
-
36
- describe "version_exists?" do
37
- example do
38
- descriptor = JSON.parse(descriptor_content)
39
- package = descriptor["package"]
40
- package_name = package["name"]
41
- subject = package["subject"]
42
- repo = package["repo"]
43
- version_name = descriptor["version"]["name"]
44
-
45
- init_provider(provider)
46
- expect(provider.version_exists_path).to eq("/packages/#{subject}/#{repo}/#{package_name}/versions/#{version_name}")
47
- end
48
- end
49
-
50
- describe "create_package" do
51
- example do
52
- descriptor = JSON.parse(descriptor_content)
53
- package = descriptor["package"]
54
- subject = package["subject"]
55
- repo = package["repo"]
56
-
57
- init_provider(provider)
58
- request_details = provider.create_package
59
- expect(request_details.path).to eq("/packages/#{subject}/#{repo}")
60
-
61
- body = {
62
- 'name' => package["name"],
63
- 'desc' => package["desc"],
64
- 'licenses' => package["licenses"],
65
- 'labels' => package["labels"],
66
- 'vcs_url' => package["vcs_url"],
67
- 'website_url' => package["website_url"],
68
- 'issue_tracker_url' => package["issue_tracker_url"],
69
- 'public_download_numbers' => package["public_download_numbers"],
70
- 'public_stats' => package["public_stats"]
71
- }
72
- expect(request_details.body).to eq(body)
73
- end
74
- end
75
-
76
- describe "create_version" do
77
- example do
78
- descriptor = JSON.parse(descriptor_content)
79
- package = descriptor["package"]
80
- package_name = package["name"]
81
- subject = package["subject"]
82
- repo = package["repo"]
83
-
84
- init_provider(provider)
85
- request_details = provider.create_version
86
- expect(request_details.path).to eq("/packages/#{subject}/#{repo}/#{package_name}/versions")
87
-
88
- version = descriptor["version"]
89
- body = {
90
- 'name' => version["name"],
91
- 'desc' => version["desc"],
92
- 'released' => version["released"],
93
- 'vcs_tag' => version["vcs_tag"],
94
- 'attributes' => version["attributes"]
95
- }
96
- expect(request_details.body).to eq(body)
97
- end
98
- end
99
-
100
- describe "add_package_attributes" do
101
- example do
102
- descriptor = JSON.parse(descriptor_content)
103
- package = descriptor["package"]
104
- package_name = package["name"]
105
- subject = package["subject"]
106
- repo = package["repo"]
107
-
108
- init_provider(provider)
109
- request_details = provider.add_package_attributes
110
- expect(request_details.path).to eq("/packages/#{subject}/#{repo}/#{package_name}/attributes")
111
-
112
- body = package["attributes"]
113
- expect(request_details.body).to eq(body)
114
- end
115
- end
116
-
117
- describe "add_version_attributes" do
118
- example do
119
- descriptor = JSON.parse(descriptor_content)
120
- package = descriptor["package"]
121
- package_name = package["name"]
122
- subject = package["subject"]
123
- repo = package["repo"]
124
- version_name = descriptor["version"]["name"]
125
-
126
- init_provider(provider)
127
- request_details = provider.add_version_attributes
128
- expect(request_details.path).to eq("/packages/#{subject}/#{repo}/#{package_name}/versions/#{version_name}/attributes")
129
-
130
- descriptor = JSON.parse(descriptor_content)
131
- version = descriptor["version"]
132
- body = version["attributes"]
133
- expect(request_details.body).to eq(body)
134
- end
135
- end
136
-
137
- describe "publish_version" do
138
- example do
139
- descriptor = JSON.parse(descriptor_content)
140
- package = descriptor["package"]
141
- package_name = package["name"]
142
- subject = package["subject"]
143
- repo = package["repo"]
144
- version_name = descriptor["version"]["name"]
145
-
146
- init_provider(provider)
147
- request_details = provider.publish_version
148
- expect(request_details.path).to eq("/content/#{subject}/#{repo}/#{package_name}/#{version_name}/publish")
149
- end
150
- end
151
-
152
- describe "gpg_sign_version_without_passphrase" do
153
- example do
154
- descriptor = JSON.parse(descriptor_content)
155
- package = descriptor["package"]
156
- package_name = package["name"]
157
- subject = package["subject"]
158
- repo = package["repo"]
159
- version_name = descriptor["version"]["name"]
160
-
161
- init_provider(provider)
162
- request_details = provider.gpg_sign_version
163
- expect(request_details.path).to eq("/gpg/#{subject}/#{repo}/#{package_name}/versions/#{version_name}")
164
- expect(request_details.body).to eq(nil)
165
- end
166
- end
167
-
168
- describe "gpg_sign_version_with_passphrase" do
169
- example do
170
- descriptor = JSON.parse(descriptor_content)
171
- package = descriptor["package"]
172
- package_name = package["name"]
173
- subject = package["subject"]
174
- repo = package["repo"]
175
- version_name = descriptor["version"]["name"]
176
-
177
- init_provider(provider_with_passphrase)
178
- request_details = provider_with_passphrase.gpg_sign_version
179
- expect(request_details.path).to eq("/gpg/#{subject}/#{repo}/#{package_name}/versions/#{version_name}")
180
-
181
- body = {
182
- 'passphrase' => 'passphrase'
183
- }
184
- expect(request_details.body).to eq(body)
185
- end
186
- end
187
-
188
- describe "upload_files" do
189
- example do
190
- init_provider(provider)
191
- files_to_upload = Hash.new()
192
- matrix_params = {
193
- 'p1' => 'a',
194
- 'p2' => 'b'
195
- }
196
-
197
- provider.add_if_matches(files_to_upload, 'build/files/a.gem', 'build/files/(.*.gem)', 'exclude', 'a/b/$1', nil)
198
- provider.add_if_matches(files_to_upload, 'build/files/b.gem', 'build/files/(.*.gem)', nil, 'a/b/$1', matrix_params)
199
- provider.add_if_matches(files_to_upload, 'build/files/c.gem', 'build/files/(.*.gem)', '.*files.*', 'a/b/$1', nil)
200
- provider.add_if_matches(files_to_upload, 'build/files/c.txt', 'build/files/(.*.gem)', 'exclude', 'a/b/$1', nil)
201
-
202
- expect(files_to_upload["build/files/a.gem"]).not_to eq(nil)
203
- expect(files_to_upload["build/files/a.gem"].upload_path).to eq('a/b/a.gem')
204
- expect(files_to_upload["build/files/a.gem"].matrix_params).to eq(nil)
205
-
206
- expect(files_to_upload["build/files/b.gem"]).not_to eq(nil)
207
- expect(files_to_upload["build/files/b.gem"].upload_path).to eq('a/b/b.gem')
208
- expect(files_to_upload["build/files/b.gem"].matrix_params).to eq(matrix_params)
209
-
210
- expect(files_to_upload["build/files/c.gem"]).to eq(nil)
211
- expect(files_to_upload["build/files/c.txt"]).to eq(nil)
212
- end
213
- end
214
-
215
- def init_provider(bintray)
216
- bintray.descriptor=descriptor_content
217
- bintray.test_mode = true
218
- end
219
-
220
- def descriptor_content
221
- return """ {
222
- \"package\": {
223
- \"name\": \"auto-upload\",
224
- \"repo\": \"myRepo\",
225
- \"subject\": \"myBintrayUser\",
226
- \"desc\": \"I was pushed completely automatically\",
227
- \"website_url\": \"www.jfrog.com\",
228
- \"issue_tracker_url\": \"https://github.com/bintray/bintray-client-java/issues\",
229
- \"vcs_url\": \"https://github.com/bintray/bintray-client-java.git\",
230
- \"github_use_tag_release_notes\": true,
231
- \"github_release_notes_file\": \"RELEASE.txt\",
232
- \"licenses\": [\"MIT\"],
233
- \"labels\": [\"cool\", \"awesome\", \"gorilla\"],
234
- \"public_download_numbers\": false,
235
- \"public_stats\": false,
236
- \"attributes\": [{\"name\": \"att1\", \"values\" : [\"val1\"], \"type\": \"string\"},
237
- {\"name\": \"att2\", \"values\" : [1, 2.2, 4], \"type\": \"number\"},
238
- {\"name\": \"att5\", \"values\" : [\"2014-12-28T19:43:37+0100\"], \"type\": \"date\"}]
239
- },
240
- \"version\": {
241
- \"name\": \"0.5\",
242
- \"desc\": \"This is a version\",
243
- \"released\": \"2015-01-04\",
244
- \"vcs_tag\": \"0.5\",
245
- \"attributes\": [{\"name\": \"VerAtt1\", \"values\" : [\"VerVal1\"], \"type\": \"string\"},
246
- {\"name\": \"VerAtt2\", \"values\" : [1, 3.3, 5], \"type\": \"number\"},
247
- {\"name\": \"VerAtt3\", \"values\" : [\"2015-01-01T19:43:37+0100\"], \"type\": \"date\"}],
248
- \"gpgSign\": true
249
- },
250
- \"files\":
251
- [
252
- {\"includePattern\": \"build/bin/(*.gem)\", \"excludePattern\": \".*/do-not-deploy/.*\", \"uploadPattern\": \"gems/$1\"},
253
- {\"includePattern\": \"build/docs/(.*)\", \"uploadPattern\": \"docs/$1\"}
254
- ],
255
- \"publish\": true
256
- }
257
- """
258
- end
259
- end