dockly 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NzU2YTdjMzNkOTQ4ZGYzNWI4MWZlMjY1MTFlYWUwMTQwOGI4NTdmZA==
5
+ data.tar.gz: !binary |-
6
+ MmI0ZjY4NTFlMDQxYzJmNmVlYjViZjk1MTAxNWM5ODY1ZjNlZmUzOQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ YjllNDAyZjM1ODQ1MWEwZjlhYWQwMWM0ZTAzMzI4ZGEzNTk3OTI1ZDI2OTFl
10
+ ODkzNjhkZTk0MzNhN2Q2NjdjZjNlODRhZjMwMzJhYTU1ZmY5ODkxNTdjYTFh
11
+ MTU5ZGNhYzhjNDFjODU0Yjk2ZWI3MmNhZWZkYjVjNGJjNzBhZjU=
12
+ data.tar.gz: !binary |-
13
+ NDM3MjNhZDMyZGFmY2VkYWNhMTQ3NzliMWIxMjRiMWM2ZjNmMWJhYThkNjEy
14
+ ODBlNTc4YzM2MTNiOTQ4YTc3YzExMzA0ZGE4OTMzODFkZjgyZGM5NDFjMmYx
15
+ ZmY2NWI1ZWNkMmIzNjBjNWM0MDdlMWY3MWQ4YmZkYmVjNGRjYTk=
@@ -26,6 +26,7 @@ class Dockly::Deb
26
26
  end
27
27
 
28
28
  def create_package!
29
+ info "creating package"
29
30
  ensure_present! :build_dir, :deb_build_dir
30
31
  FileUtils.mkdir_p(File.join(build_dir, deb_build_dir))
31
32
  FileUtils.rm(build_path) if File.exist?(build_path)
@@ -41,9 +42,7 @@ class Dockly::Deb
41
42
  end
42
43
 
43
44
  def build
44
- info "creating package"
45
45
  create_package!
46
- info "uploading to s3"
47
46
  upload_to_s3
48
47
  end
49
48
 
@@ -64,6 +63,7 @@ class Dockly::Deb
64
63
  end
65
64
 
66
65
  def upload_to_s3
66
+ info "uploading to s3"
67
67
  return if s3_bucket.nil?
68
68
  raise "Package wasn't created!" unless File.exist?(build_path)
69
69
  info "uploading package to s3"
@@ -39,6 +39,21 @@ class Dockly::Docker
39
39
  cleanup([image]) if cleanup_images
40
40
  end
41
41
 
42
+ def export_only
43
+ if image = find_image_by_repotag
44
+ info "Found image by repo:tag: #{repo}:#{tag} - #{image.inspect}"
45
+ export_image(image)
46
+ else
47
+ raise "Could not find image"
48
+ end
49
+ end
50
+
51
+ def find_image_by_repotag
52
+ Docker::Image.all.find do |image|
53
+ image.info["RepoTags"].include?("#{repo}:#{tag}")
54
+ end
55
+ end
56
+
42
57
  def generate_build
43
58
  Docker.options = { :read_timeout => timeout, :write_timeout => timeout }
44
59
  images = {}
@@ -179,7 +194,7 @@ class Dockly::Docker
179
194
  info "running custom build steps, starting with id: #{image.id}"
180
195
  out_image = ::Docker::Image.build("from #{image.id}\n#{build}")
181
196
  info "finished running custom build steps, result id: #{out_image.id}"
182
- out_image.tap { |img| img.tag(:repo => repo, :tag => tag) }
197
+ out_image.tap { |img| img.tag(repo: repo, tag: tag, force: true) }
183
198
  end
184
199
 
185
200
  def repo
@@ -227,6 +242,7 @@ class Dockly::Docker
227
242
  end
228
243
  raise
229
244
  ensure
245
+ container.tap(&:wait).remove if container
230
246
  gzip_output.close if gzip_output
231
247
  end
232
248
 
@@ -53,48 +53,97 @@ namespace :dockly do
53
53
  raise "No dockly.rb found!" unless File.exist?('dockly.rb')
54
54
  end
55
55
 
56
+ prepare_targets = []
57
+ upload_targets = []
56
58
  build_targets = []
57
59
 
58
60
  namespace :deb do
59
61
  Dockly.debs.values.each do |inst|
60
- deb inst.name => 'dockly:load' do |name|
61
- Thread.current[:rake_task] = name
62
- inst.build
62
+ namespace :prepare do
63
+ task inst.name => 'dockly:load' do |name|
64
+ inst.create_package!
65
+ end
63
66
  end
67
+
68
+ namespace :upload do
69
+ deb inst.name => 'dockly:load' do |name|
70
+ inst.upload_to_s3
71
+ end
72
+ end
73
+
74
+ deb inst.name => [
75
+ 'dockly:load',
76
+ "dockly:deb:prepare:#{inst.name}",
77
+ "dockly:deb:upload:#{inst.name}"
78
+ ]
79
+ prepare_targets << "dockly:deb:prepare:#{inst.name}"
80
+ upload_targets << "dockly:deb:upload:#{inst.name}"
64
81
  build_targets << "dockly:deb:#{inst.name}"
65
82
  end
66
83
  end
67
84
 
68
85
  namespace :rpm do
69
86
  Dockly.rpms.values.each do |inst|
70
- rpm inst.name => 'dockly:load' do |name|
71
- Thread.current[:rake_task] = name
72
- inst.build
87
+ namespace :prepare do
88
+ task inst.name => 'dockly:load' do |name|
89
+ inst.create_package!
90
+ end
91
+ end
92
+
93
+ namespace :upload do
94
+ rpm inst.name => 'dockly:load' do |name|
95
+ inst.upload_to_s3
96
+ end
73
97
  end
98
+
99
+ rpm inst.name => [
100
+ 'dockly:load',
101
+ "dockly:rpm:prepare:#{inst.name}",
102
+ "dockly:rpm:upload:#{inst.name}"
103
+ ]
104
+ prepare_targets << "dockly:rpm:prepare:#{inst.name}"
105
+ upload_targets << "dockly:rpm:upload:#{inst.name}"
74
106
  build_targets << "dockly:rpm:#{inst.name}"
75
107
  end
76
108
  end
77
109
 
78
110
  namespace :docker do
79
111
  Dockly.dockers.values.each do |inst|
80
- docker inst.name => 'dockly:load' do
81
- Thread.current[:rake_task] = inst.name
82
- inst.generate!
112
+ # For backwards compatibility
113
+ namespace :noexport do
114
+ task inst.name => "dockly:docker:prepare:#{inst.name}"
83
115
  end
84
116
 
85
- namespace :noexport do
117
+ namespace :prepare do
86
118
  task inst.name => 'dockly:load' do
87
119
  Thread.current[:rake_task] = inst.name
88
120
  inst.generate_build
89
121
  end
90
122
  end
91
123
 
124
+ namespace :upload do
125
+ task inst.name => 'dockly:load' do
126
+ Thread.current[:rake_task] = inst.name
127
+ inst.export_only
128
+ end
129
+ end
130
+
131
+ docker inst.name => [
132
+ 'dockly:load',
133
+ "dockly:docker:prepare:#{inst.name}",
134
+ "dockly:docker:upload:#{inst.name}"
135
+ ]
136
+
92
137
  # Docker image will be generated by 'dockly:deb:package'
93
138
  unless inst.s3_bucket.nil?
139
+ prepare_targets << "dockly:docker:prepare:#{inst.name}"
140
+ upload_targets << "dockly:docker:upload:#{inst.name}"
94
141
  build_targets << "dockly:docker:#{inst.name}"
95
142
  end
96
143
  end
97
144
  end
98
145
 
146
+ multitask :prepare_all => prepare_targets
147
+ multitask :upload_all => upload_targets
99
148
  multitask :build_all => build_targets
100
149
  end
@@ -1,3 +1,3 @@
1
1
  module Dockly
2
- VERSION = '2.2.0'
2
+ VERSION = '2.3.0'
3
3
  end
@@ -46,7 +46,7 @@ describe Dockly::BuildCache::Docker, :docker do
46
46
  it "does not have the file lol" do
47
47
  i = build_cache.execute!
48
48
  output = ""
49
- i.run('ls').attach { |source,chunk| output += chunk }
49
+ i.run('ls').attach(logs: true) { |source,chunk| output += chunk }
50
50
  output.should_not include('lol')
51
51
  end
52
52
  end
@@ -60,8 +60,8 @@ describe Dockly::BuildCache::Docker, :docker do
60
60
 
61
61
  it "does have the file lol" do
62
62
  i = build_cache.execute!
63
- output = i.run('ls /').attach(:stdout => true)
64
- output.first.first.lines.map(&:chomp).should include('lol')
63
+ output = i.run('ls /').attach(stdout: true, logs: true)
64
+ expect(output.first.grep(/lol/)).to_not be_empty
65
65
  end
66
66
  end
67
67
  end
@@ -75,7 +75,7 @@ describe Dockly::BuildCache::Docker, :docker do
75
75
  it "does have the file lol" do
76
76
  i = build_cache.run_build
77
77
  output = ""
78
- i.run('ls').attach { |source,chunk| output += chunk }
78
+ i.run('ls').attach(logs: true) { |source,chunk| output += chunk }
79
79
  output.should include('lol')
80
80
  end
81
81
  end
@@ -156,7 +156,7 @@ describe Dockly::BuildCache::Docker, :docker do
156
156
  context "when parameter command returns successfully" do
157
157
  let(:command) { "uname -r" }
158
158
  it 'returns the output of the parameter_command' do
159
- expect(build_cache.parameter_output(command)).to match(/\A3\.\d{2}\.\d-\d{2}-generic\Z/)
159
+ expect(build_cache.parameter_output(command)).to match(/\A3\.\d{2}\.\d-\d{1,2}-\w+\Z/)
160
160
  end
161
161
  end
162
162
 
@@ -69,6 +69,13 @@ describe Dockly::Deb do
69
69
  end
70
70
  end
71
71
 
72
+ after do
73
+ image = ::Docker::Image.all.find do |image|
74
+ image.info['RepoTags'].include?('deb_test:latest')
75
+ end
76
+ image.remove if image
77
+ end
78
+
72
79
  it 'builds the docker image and adds it to the deb' do
73
80
  subject.create_package!
74
81
  `dpkg --contents #{filename}`
@@ -87,13 +94,20 @@ describe Dockly::Deb do
87
94
 
88
95
  registry :test_docker_registry do
89
96
  auth_config_file '/etc/docker/.dockercfg'
90
- username 'tlunter'
91
- email 'tlunter@gmail.com'
92
- password '******'
97
+ username ENV['DOCKER_USER']
98
+ email ENV['DOCKER_EMAIL']
99
+ password ENV['DOCKER_PASS']
93
100
  end
94
101
  end
95
102
  end
96
103
 
104
+ after do
105
+ image = ::Docker::Image.all.find do |image|
106
+ image.info['RepoTags'].include?("#{ENV['DOCKER_USER']}/deb_test:latest")
107
+ end
108
+ image.remove if image
109
+ end
110
+
97
111
  it 'builds the docker image and adds it to the deb' do
98
112
  subject.create_package!
99
113
  `dpkg --contents #{filename}`
@@ -64,7 +64,16 @@ describe Dockly::Docker do
64
64
  end
65
65
 
66
66
  describe '#import_base', :docker do
67
+ let(:images) { [] }
68
+ let(:docker_file_s3) { 'https://s3.amazonaws.com/swipely-pub/docker-export-ubuntu-latest.tgz' }
67
69
  let(:docker_file) { 'docker-export-ubuntu-latest.tar.gz' }
70
+ let(:container) { Docker::Container.create('Image' => images.last.id, 'Cmd' => ['ls', '-1', '/']) }
71
+ let(:output) { container.tap(&:start).attach(logs: true) }
72
+
73
+ after do
74
+ container.tap(&:wait).remove
75
+ images.last.remove
76
+ end
68
77
 
69
78
  # TODO: since we used to run this w/ Vagrant, we put it all together; break it up
70
79
  it 'works' do
@@ -72,27 +81,21 @@ describe Dockly::Docker do
72
81
  subject.tag 'my-app'
73
82
  unless File.exist?(docker_file)
74
83
  File.open(docker_file, 'wb') do |file|
75
- Excon.get('https://s3.amazonaws.com/swipely-pub/docker-export-ubuntu-latest.tgz',
76
- :response_block => lambda { |chunk, _, _| file.write(chunk) })
84
+ Excon.get(docker_file_s3, response_block: lambda { |chunk, _, _| file.write(chunk) })
77
85
  end
78
86
  end
79
- image = subject.import_base(subject.ensure_tar(docker_file))
80
- image.should_not be_nil
81
- image.id.should_not be_nil
87
+ images << subject.import_base(subject.ensure_tar(docker_file))
88
+ expect(images.last).to_not be_nil
89
+ expect(images.last.id).to_not be_nil
82
90
 
83
91
  # it 'builds'
84
92
  subject.build "run touch /lol"
85
- image = subject.build_image(image)
86
- container = Docker::Container.create('Image' => image.id, 'Cmd' => ['ls', '-1', '/'])
87
- output = container.tap(&:start).attach(logs: true)
88
- output[0].grep(/lol/).should_not be_empty
89
- # TODO: stop resetting the connection, once no longer necessary after attach
90
- Docker.reset_connection!
91
- subject.instance_variable_set(:@connection, Docker.connection)
93
+ images << subject.build_image(images.last)
94
+ expect(output[0].grep(/lol/)).to_not be_empty
92
95
 
93
96
  # it 'exports'
94
- subject.export_image(image)
95
- File.exist?('build/docker/test_docker-image.tgz').should be_true
97
+ subject.export_image(images.last)
98
+ expect(File.exist?('build/docker/test_docker-image.tgz')).to be_true
96
99
  end
97
100
  end
98
101
 
@@ -225,7 +228,10 @@ describe Dockly::Docker do
225
228
  end
226
229
 
227
230
  describe '#export_image_diff', :docker do
231
+ let(:images) { [] }
228
232
  let(:output) { StringIO.new }
233
+ let(:container) { images.last.run('true').tap { |c| c.wait(10) } }
234
+
229
235
  before do
230
236
  subject.instance_eval do
231
237
  import 'https://s3.amazonaws.com/swipely-pub/docker-export-ubuntu-test.tgz'
@@ -234,11 +240,16 @@ describe Dockly::Docker do
234
240
  end
235
241
  end
236
242
 
243
+ after do
244
+ container.remove
245
+ images.last.remove
246
+ end
247
+
237
248
  it "should export only the tar with the new file" do
238
249
  docker_tar = File.absolute_path(subject.ensure_tar(subject.fetch_import))
239
- image = subject.import_base(docker_tar)
240
- image = subject.build_image(image)
241
- container = image.run('true').tap { |c| c.wait(10) }
250
+
251
+ images << subject.import_base(docker_tar)
252
+ images << subject.build_image(images.last)
242
253
  subject.export_image_diff(container, output)
243
254
 
244
255
  expect(output.string).to include('it_worked')
@@ -263,20 +274,18 @@ describe Dockly::Docker do
263
274
  end
264
275
 
265
276
  it 'builds a docker image' do
266
- expect {
267
- subject.generate!
268
- File.exist?(docker_file).should be_true
269
- Dockly::Util::Tar.is_gzip?(docker_file).should be_true
270
- File.size(docker_file).should be > (1024 * 1024)
271
- paths = []
272
- Gem::Package::TarReader.new(gz = Zlib::GzipReader.new(File.new(docker_file))).each do |entry|
273
- paths << entry.header.name
274
- end
275
- paths.size.should be > 1000
276
- paths.should include('sbin/init')
277
- paths.should include('lib/dockly.rb')
278
- paths.should include('it_worked')
279
- }.to_not change { ::Docker::Image.all(:all => true).length }
277
+ expect { subject.generate! }.to_not change { ::Docker::Image.all(:all => true).length }
278
+ expect(File.exist?(docker_file)).to be_true
279
+ expect(Dockly::Util::Tar.is_gzip?(docker_file)).to be_true
280
+ expect(File.size(docker_file)).to be > (1024 * 1024)
281
+ paths = []
282
+ Gem::Package::TarReader.new(Zlib::GzipReader.new(File.new(docker_file))).each do |entry|
283
+ paths << entry.header.name
284
+ end
285
+ expect(paths.size).to be > 1000
286
+ expect(paths).to include('sbin/init')
287
+ expect(paths).to include('lib/dockly.rb')
288
+ expect(paths).to include('it_worked')
280
289
  end
281
290
  end
282
291
 
@@ -293,44 +302,51 @@ describe Dockly::Docker do
293
302
  end
294
303
  end
295
304
 
305
+ after do
306
+ image = ::Docker::Image.all.find do |image|
307
+ image.info['RepoTags'].include?('dockly_test:latest')
308
+ end
309
+ image.remove if image
310
+ end
311
+
296
312
  it 'builds a docker image' do
297
- expect {
298
- subject.generate!
299
- File.exist?(docker_file).should be_true
300
- Dockly::Util::Tar.is_gzip?(docker_file).should be_true
301
- File.size(docker_file).should be > (1024 * 1024)
302
- paths = []
303
- Gem::Package::TarReader.new(gz = Zlib::GzipReader.new(File.new(docker_file))).each do |entry|
304
- paths << entry.header.name
305
- end
306
- paths.size.should be > 1000
307
- paths.should include('sbin/init')
308
- paths.should include('lib/dockly.rb')
309
- paths.should include('it_worked')
310
- }.to change { ::Docker::Image.all(:all => true).length }.by(4)
313
+ expect { subject.generate! }.to change { ::Docker::Image.all(:all => true).length }.by(4)
314
+
315
+ expect(File.exist?(docker_file)).to be_true
316
+ expect(Dockly::Util::Tar.is_gzip?(docker_file)).to be_true
317
+ expect(File.size(docker_file)).to be > (1024 * 1024)
318
+ paths = []
319
+ Gem::Package::TarReader.new(Zlib::GzipReader.new(File.new(docker_file))).each do |entry|
320
+ paths << entry.header.name
321
+ end
322
+ expect(paths.size).to be > 1000
323
+ expect(paths).to include('sbin/init')
324
+ expect(paths).to include('lib/dockly.rb')
325
+ expect(paths).to include('it_worked')
311
326
  end
312
327
  end
313
328
 
314
329
  context 'when there is a registry' do
315
330
  subject {
316
331
  Dockly::Docker.new do
317
- registry_import 'nahiluhmot/base', :tag => 'latest'
332
+ registry_import 'tianon/true', :tag => 'latest'
318
333
  git_archive '.'
319
- build "run touch /it_worked"
334
+ build 'RUN ["/true", ""]'
320
335
  repository 'dockly_test'
321
336
  build_dir 'build/docker'
322
337
 
323
338
  registry do
324
- username 'tlunter'
325
- email 'tlunter@gmail.com'
326
- password '******'
339
+ username ENV['DOCKER_USER']
340
+ email ENV['DOCKER_EMAIL']
341
+ password ENV['DOCKER_PASS']
327
342
  end
328
343
  end
329
344
  }
330
345
 
331
346
  it 'pushes the image to the registry instead of exporting it' do
332
- subject.generate!
333
- expect { ::Docker::Image.build('from nahiluhmot/dockly_test') }.to_not raise_error
347
+ image = subject.generate_build
348
+ expect { ::Docker::Image.build("from #{ENV['DOCKER_USER']}/dockly_test") }.to_not raise_error
349
+ image.remove unless image.nil?
334
350
  end
335
351
  end
336
352
  end
@@ -56,6 +56,13 @@ describe Dockly::Rpm do
56
56
  end
57
57
  end
58
58
 
59
+ after do
60
+ image = ::Docker::Image.all.find do |image|
61
+ image.info['RepoTags'].include?('rpm_test:latest')
62
+ end
63
+ image.remove if image
64
+ end
65
+
59
66
  it 'builds the docker image and adds it to the rpm' do
60
67
  subject.create_package!
61
68
  `rpm -qpl #{filename}`
@@ -74,13 +81,20 @@ describe Dockly::Rpm do
74
81
 
75
82
  registry :test_docker_registry do
76
83
  auth_config_file '/etc/docker/.dockercfg'
77
- username 'tlunter'
78
- email 'tlunter@gmail.com'
79
- password '******'
84
+ username ENV['DOCKER_USER']
85
+ email ENV['DOCKER_EMAIL']
86
+ password ENV['DOCKER_PASS']
80
87
  end
81
88
  end
82
89
  end
83
90
 
91
+ after do
92
+ image = ::Docker::Image.all.find do |image|
93
+ image.info['RepoTags'].include?("#{ENV['DOCKER_USER']}/rpm_test:latest")
94
+ end
95
+ image.remove if image
96
+ end
97
+
84
98
  it 'builds the docker image and adds it to the rpm' do
85
99
  subject.create_package!
86
100
  `rpm -qpl #{filename}`
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dockly
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
5
- prerelease:
4
+ version: 2.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Swipely, Inc.
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-05-12 00:00:00.000000000 Z
11
+ date: 2015-06-03 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: clamp
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: docker-api
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: dockly-util
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: excon
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ! '>='
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ! '>='
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: fog
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: foreman
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ! '>='
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ! '>='
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: fpm
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ~>
124
109
  - !ruby/object:Gem::Version
@@ -126,7 +111,6 @@ dependencies:
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: grit
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ! '>='
132
116
  - !ruby/object:Gem::Version
@@ -134,7 +118,6 @@ dependencies:
134
118
  type: :runtime
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - ! '>='
140
123
  - !ruby/object:Gem::Version
@@ -142,7 +125,6 @@ dependencies:
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: cane
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
129
  - - ! '>='
148
130
  - !ruby/object:Gem::Version
@@ -150,7 +132,6 @@ dependencies:
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
136
  - - ! '>='
156
137
  - !ruby/object:Gem::Version
@@ -158,7 +139,6 @@ dependencies:
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: pry
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
143
  - - ! '>='
164
144
  - !ruby/object:Gem::Version
@@ -166,7 +146,6 @@ dependencies:
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
150
  - - ! '>='
172
151
  - !ruby/object:Gem::Version
@@ -174,7 +153,6 @@ dependencies:
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: rake
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
157
  - - ! '>='
180
158
  - !ruby/object:Gem::Version
@@ -182,7 +160,6 @@ dependencies:
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
164
  - - ! '>='
188
165
  - !ruby/object:Gem::Version
@@ -190,7 +167,6 @@ dependencies:
190
167
  - !ruby/object:Gem::Dependency
191
168
  name: rspec
192
169
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
170
  requirements:
195
171
  - - ~>
196
172
  - !ruby/object:Gem::Version
@@ -198,7 +174,6 @@ dependencies:
198
174
  type: :development
199
175
  prerelease: false
200
176
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
177
  requirements:
203
178
  - - ~>
204
179
  - !ruby/object:Gem::Version
@@ -206,7 +181,6 @@ dependencies:
206
181
  - !ruby/object:Gem::Dependency
207
182
  name: vcr
208
183
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
184
  requirements:
211
185
  - - ! '>='
212
186
  - !ruby/object:Gem::Version
@@ -214,7 +188,6 @@ dependencies:
214
188
  type: :development
215
189
  prerelease: false
216
190
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
191
  requirements:
219
192
  - - ! '>='
220
193
  - !ruby/object:Gem::Version
@@ -222,7 +195,6 @@ dependencies:
222
195
  - !ruby/object:Gem::Dependency
223
196
  name: webmock
224
197
  requirement: !ruby/object:Gem::Requirement
225
- none: false
226
198
  requirements:
227
199
  - - ! '>='
228
200
  - !ruby/object:Gem::Version
@@ -230,7 +202,6 @@ dependencies:
230
202
  type: :development
231
203
  prerelease: false
232
204
  version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
205
  requirements:
235
206
  - - ! '>='
236
207
  - !ruby/object:Gem::Version
@@ -311,31 +282,29 @@ files:
311
282
  - spec/fixtures/test-2.tar.gz
312
283
  - spec/fixtures/test-3.tar
313
284
  - spec/spec_helper.rb
314
- - spec/support/vcr.rb
315
285
  homepage: https://github.com/swipely/dockly
316
286
  licenses:
317
287
  - MIT
288
+ metadata: {}
318
289
  post_install_message:
319
290
  rdoc_options: []
320
291
  require_paths:
321
292
  - lib
322
293
  required_ruby_version: !ruby/object:Gem::Requirement
323
- none: false
324
294
  requirements:
325
295
  - - ! '>='
326
296
  - !ruby/object:Gem::Version
327
297
  version: '0'
328
298
  required_rubygems_version: !ruby/object:Gem::Requirement
329
- none: false
330
299
  requirements:
331
300
  - - ! '>='
332
301
  - !ruby/object:Gem::Version
333
302
  version: '0'
334
303
  requirements: []
335
304
  rubyforge_project:
336
- rubygems_version: 1.8.23.2
305
+ rubygems_version: 2.4.6
337
306
  signing_key:
338
- specification_version: 3
307
+ specification_version: 4
339
308
  summary: Packaging made easy
340
309
  test_files:
341
310
  - spec/dockly/aws/s3_writer_spec.rb
@@ -361,4 +330,3 @@ test_files:
361
330
  - spec/fixtures/test-2.tar.gz
362
331
  - spec/fixtures/test-3.tar
363
332
  - spec/spec_helper.rb
364
- - spec/support/vcr.rb
@@ -1,11 +0,0 @@
1
- require 'webmock'
2
- require 'vcr'
3
-
4
- WebMock.disable_net_connect!
5
-
6
- VCR.configure do |c|
7
- c.allow_http_connections_when_no_cassette = true
8
- c.hook_into :webmock
9
- c.cassette_library_dir = File.join(File.dirname(File.dirname(__FILE__)), 'vcr')
10
- c.configure_rspec_metadata!
11
- end