dockly 1.5.10 → 1.5.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5eda36a779df41ea9bceeab3d5745798b707c71b
4
+ data.tar.gz: 99d2035cad1ab36ed9e1a0d6f90dea5ac8142a6e
5
+ SHA512:
6
+ metadata.gz: bac1610c6fc54b2bec77128c23038ad2f4ebd41f67cfca2e3b0b0c4ecf83e462e85e76a994a961b67f5f30ea15ef3636f1a9f2ae091430f93c56deb7e38236de
7
+ data.tar.gz: 26a85cacfb18377b49e1623e13ec6337a37b7a7a4aef3b4b61a7b160b0456af5221513440507bcd8553c2257dd10724f220eb89ebba493b8aeab6280b10247a4
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 1.9.3-p125
1
+ 1.9.3-p547
data/.travis.yml CHANGED
@@ -4,4 +4,7 @@ rvm:
4
4
  - 1.9.3
5
5
  - 2.0.0
6
6
  script: CI=true bundle exec rake
7
+ before_install:
8
+ - sudo apt-get update -qq
9
+ - sudo apt-get install -qq rpm
7
10
 
data/README.md CHANGED
@@ -5,17 +5,14 @@
5
5
  ![Dockly](https://raw.github.com/swipely/dockly/master/img/dockly.png)
6
6
  ======================================================================
7
7
 
8
- `dockly` is a gem made to ease the pain of packaging an application. For this gem to be useful, quite a few assumptions can be made about your stack:
9
-
10
- - You're deploying to a Debian-based system
11
- - You want to use [Docker](http://docker.io) for process isolation
8
+ `dockly` is a gem made to ease the pain of packaging an application. For this gem to be useful, you will want to use [Docker](http://docker.io) for process isolation.
12
9
 
13
10
  Although only a specific type of repository may be used, these assumptions allow us to define a simple DSL to describe your repository.
14
11
 
15
12
  Usage
16
13
  -----
17
14
 
18
- Once a `deb` block has been defined by the DSL below, dockly is invoked by either `bundle exec dockly build #{deb block name}` or `bundle exec rake dockly:deb:#{deb block name}`.
15
+ Once a package block has been defined by the DSL below, dockly is invoked by either (for a deb) `bundle exec dockly build #{deb block name}` or `bundle exec rake dockly:deb:#{deb block name}`.
19
16
  If looking to just build a `docker` block, run either `bundle exec dockly docker #{docker block name}` or `bundle exec rake dockly:docker:#{docker block name}`.
20
17
  To build without exporting, run add either `--no-export` or `:noexport` to the CLI program or Rake task
21
18
 
@@ -135,7 +132,7 @@ The `docker` DSL is used to define Docker containers. It has the following attri
135
132
  - `package_dir`
136
133
  - required: `true`
137
134
  - default: `/opt/docker`
138
- - description: the location of the created image in the Debian package
135
+ - description: the location of the created image in the package
139
136
  - `timeout`
140
137
  - required: `true`
141
138
  - default: `60`
@@ -168,7 +165,7 @@ In addition to the above attributes, `docker` has the following references:
168
165
  - required: `false`
169
166
  - allows one
170
167
  - class: `Dockly::Docker::Registry`
171
- - description: a registry to push to in lieu of exporting as a tar -- the registry will be automatically pulled upon installing the debian package
168
+ - description: a registry to push to in lieu of exporting as a tar -- the registry will be automatically pulled upon installing the package
172
169
 
173
170
  Need finer control of Docker packages? We also wrote [docker-api](https://github.com/swipely/docker-api).
174
171
 
@@ -223,7 +220,7 @@ The `foreman` DSL is used to define the foreman export scripts. It has the follo
223
220
  - `init_dir`
224
221
  - required: `false`
225
222
  - default: `'/etc/init'`
226
- - description: the location of the startup scripts in the Debian package
223
+ - description: the location of the startup scripts in the rpm -qplian package
227
224
  - `prefix`
228
225
  - required: `false`
229
226
  - default: `nil`
@@ -250,6 +247,10 @@ The `deb` DSL is used to define Debian packages. It has the following attributes
250
247
  - required: `true`
251
248
  - default: `x86_64`
252
249
  - description: the intended architecture of the created package
250
+ - `vendor`
251
+ - required: `false`
252
+ - default: `Dockly`
253
+ - description: Vendor name for this package
253
254
  - `build_dir`
254
255
  - required: `true`
255
256
  - default: `build/deb`
@@ -279,6 +280,20 @@ In addition to the above attributes, `deb` has the following references:
279
280
  - class: `Dockly::Foreman`
280
281
  - description: any Foreman scripts used in the deb
281
282
 
283
+ `rpm`
284
+ -----
285
+
286
+ Same as `deb` above, but with the following additions:
287
+
288
+ - `vendor`
289
+ - required: `true`
290
+ - default: `Dockly`
291
+ - description: Vendor name for this package
292
+ - `os`
293
+ - required: `true`
294
+ - default: `linux`
295
+ - description: The operating system to target this rpm for
296
+
282
297
  Demo
283
298
  ===
284
299
 
data/dockly.gemspec CHANGED
@@ -16,11 +16,11 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Dockly::VERSION
17
17
  gem.add_dependency 'clamp', '~> 0.6'
18
18
  gem.add_dependency 'docker-api', '>= 1.13.1'
19
- gem.add_dependency 'dockly-util', '~> 0.0.8'
19
+ gem.add_dependency 'dockly-util', '~> 0.0.9'
20
20
  gem.add_dependency 'excon'
21
21
  gem.add_dependency 'fog', '~> 1.21.0'
22
22
  gem.add_dependency 'foreman'
23
- gem.add_dependency 'fpm', '~> 0.4.42'
23
+ gem.add_dependency 'fpm', '~> 1.2.0'
24
24
  gem.add_dependency 'grit'
25
25
  gem.add_development_dependency 'cane'
26
26
  gem.add_development_dependency 'pry'
data/lib/dockly.rb CHANGED
@@ -15,6 +15,7 @@ module Dockly
15
15
  autoload :BuildCache, 'dockly/build_cache'
16
16
  autoload :Docker, 'dockly/docker'
17
17
  autoload :Deb, 'dockly/deb'
18
+ autoload :Rpm, 'dockly/rpm'
18
19
  autoload :TarDiff, 'dockly/tar_diff'
19
20
 
20
21
  LOAD_FILE = 'dockly.rb'
@@ -38,6 +39,7 @@ module Dockly
38
39
  def setup
39
40
  {
40
41
  :debs => Dockly::Deb.instances,
42
+ :rpms => Dockly::Rpm.instances,
41
43
  :dockers => Dockly::Docker.instances,
42
44
  :foremans => Dockly::Foreman.instances
43
45
  }
@@ -45,6 +47,7 @@ module Dockly
45
47
 
46
48
  {
47
49
  :deb => Dockly::Deb,
50
+ :rpm => Dockly::Rpm,
48
51
  :docker => Dockly::Docker,
49
52
  :foreman => Dockly::Foreman
50
53
  }.each do |method, klass|
@@ -57,7 +60,7 @@ module Dockly
57
60
  end
58
61
  end
59
62
 
60
- [:debs, :dockers, :foremans].each do |method|
63
+ [:debs, :rpms, :dockers, :foremans].each do |method|
61
64
  define_method(method) do
62
65
  inst[method]
63
66
  end
@@ -68,8 +71,8 @@ module Dockly
68
71
  end
69
72
 
70
73
  module_function :inst, :load_inst, :setup, :load_file, :load_file=,
71
- :deb, :docker, :foreman, :git_sha,
72
- :debs, :dockers, :foremans
74
+ :deb, :rpm, :docker, :foreman, :git_sha,
75
+ :debs, :rpms, :dockers, :foremans
73
76
  end
74
77
 
75
78
  require 'dockly/rake_task'
@@ -25,31 +25,25 @@ class Dockly::BuildCache::Docker < Dockly::BuildCache::Base
25
25
  ensure_present! :output_dir
26
26
  if cache = pull_from_s3(version)
27
27
  debug "inserting to #{output_directory}"
28
- container = image.run("mkdir -p #{File.dirname(output_directory)}")
29
- image_with_dir = container.tap(&:wait).commit
30
- self.image = image_with_dir.insert_local(
31
- 'localPath' => cache.path,
32
- 'outputPath' => File.dirname(output_directory)
28
+ path = File.expand_path(cache.path)
29
+ path_parent = File.dirname(path)
30
+ tar_flags = keep_old_files ? '-xkf' : 'xf'
31
+ container = ::Docker::Container.create(
32
+ 'Image' => image.id,
33
+ 'Cmd' => ['/bin/bash', '-lc', [
34
+ "mkdir -p #{File.dirname(output_directory)}",
35
+ '&&',
36
+ "tar #{tar_flags} #{File.join('/', 'host', path)} -C #{File.dirname(output_directory)}"
37
+ ].join(' ')
38
+ ],
39
+ 'Volumes' => {
40
+ File.join('/', 'host', path_parent) => { path_parent => 'rw' }
41
+ }
33
42
  )
34
- #path = File.expand_path(cache.path)
35
- #path_parent = File.dirname(path)
36
- #tar_flags = keep_old_files ? '-xkf' : 'xf'
37
- #container = ::Docker::Container.create(
38
- # 'Image' => image.id,
39
- # 'Cmd' => ['/bin/bash', '-lc', [
40
- # "mkdir -p #{File.dirname(output_directory)}",
41
- # '&&',
42
- # "tar #{tar_flags} #{File.join('/', 'host', path)} -C #{File.dirname(output_directory)}"
43
- # ].join(' ')
44
- # ],
45
- # 'Volumes' => {
46
- # File.join('/', 'host', path_parent) => { path_parent => 'rw' }
47
- # }
48
- #)
49
- #container.start('Binds' => ["#{path_parent}:#{File.join('/', 'host', path_parent)}"])
50
- #result = container.wait['StatusCode']
51
- #raise "Got bad status code when copying build cache: #{result}" unless result.zero?
52
- #self.image = container.commit
43
+ container.start('Binds' => ["#{path_parent}:#{File.join('/', 'host', path_parent)}"])
44
+ result = container.wait['StatusCode']
45
+ raise "Got bad status code when copying build cache: #{result}" unless result.zero?
46
+ self.image = container.commit
53
47
  debug "inserted cache into #{output_directory}"
54
48
  cache.close
55
49
  else
data/lib/dockly/deb.rb CHANGED
@@ -7,7 +7,7 @@ class Dockly::Deb
7
7
  logger_prefix '[dockly deb]'
8
8
  dsl_attribute :package_name, :version, :release, :arch, :build_dir,
9
9
  :deb_build_dir, :pre_install, :post_install, :pre_uninstall,
10
- :post_uninstall, :s3_bucket, :files, :app_user
10
+ :post_uninstall, :s3_bucket, :files, :app_user, :vendor
11
11
 
12
12
  dsl_class_attribute :docker, Dockly::Docker
13
13
  dsl_class_attribute :foreman, Dockly::Foreman
@@ -19,6 +19,7 @@ class Dockly::Deb
19
19
  default_value :deb_build_dir, 'deb'
20
20
  default_value :files, []
21
21
  default_value :app_user, 'nobody'
22
+ default_value :vendor, 'Dockly'
22
23
 
23
24
  def file(source, destination)
24
25
  @files << { :source => source, :destination => destination }
@@ -103,8 +104,7 @@ private
103
104
  add_docker(@dir_package)
104
105
  add_startup_script(@dir_package)
105
106
 
106
- debug "converting to deb"
107
- @deb_package = @dir_package.convert(FPM::Package::Deb)
107
+ convert_package
108
108
 
109
109
  @deb_package.scripts[:before_install] = pre_install
110
110
  @deb_package.scripts[:after_install] = post_install
@@ -115,10 +115,17 @@ private
115
115
  @deb_package.version = version
116
116
  @deb_package.iteration = release
117
117
  @deb_package.architecture = arch
118
+ @deb_package.vendor = vendor
119
+
118
120
 
119
121
  info "done building #{package_name}"
120
122
  end
121
123
 
124
+ def convert_package
125
+ debug "converting to deb"
126
+ @deb_package = @dir_package.convert(FPM::Package::Deb)
127
+ end
128
+
122
129
  def add_foreman(package)
123
130
  return if foreman.nil?
124
131
  info "adding foreman export"
@@ -4,7 +4,7 @@ require 'dockly'
4
4
  class Rake::DebTask < Rake::Task
5
5
  def needed?
6
6
  raise "Package does not exist" if package.nil?
7
- !package.exists?
7
+ !!ENV['FORCE'] || !package.exists?
8
8
  end
9
9
 
10
10
  def package
@@ -12,6 +12,17 @@ class Rake::DebTask < Rake::Task
12
12
  end
13
13
  end
14
14
 
15
+ class Rake::RpmTask < Rake::Task
16
+ def needed?
17
+ raise "Package does not exist" if package.nil?
18
+ !!ENV['FORCE'] || !package.exists?
19
+ end
20
+
21
+ def package
22
+ Dockly::Rpm[name.split(':').last.to_sym]
23
+ end
24
+ end
25
+
15
26
  class Rake::DockerTask < Rake::Task
16
27
  def needed?
17
28
  raise "Docker does not exist" if docker.nil?
@@ -28,6 +39,10 @@ module Rake::DSL
28
39
  Rake::DebTask.define_task(*args, &block)
29
40
  end
30
41
 
42
+ def rpm(*args, &block)
43
+ Rake::RpmTask.define_task(*args, &block)
44
+ end
45
+
31
46
  def docker(*args, &block)
32
47
  Rake::DockerTask.define_task(*args, &block)
33
48
  end
@@ -47,6 +62,15 @@ namespace :dockly do
47
62
  end
48
63
  end
49
64
 
65
+ namespace :rpm do
66
+ Dockly.rpms.values.each do |inst|
67
+ rpm inst.name => 'dockly:load' do |name|
68
+ Thread.current[:rake_task] = name
69
+ inst.build
70
+ end
71
+ end
72
+ end
73
+
50
74
  namespace :docker do
51
75
  Dockly.dockers.values.each do |inst|
52
76
  docker inst.name => 'dockly:load' do
data/lib/dockly/rpm.rb ADDED
@@ -0,0 +1,26 @@
1
+ require 'fpm'
2
+
3
+ class Dockly::Rpm < Dockly::Deb
4
+ logger_prefix '[dockly rpm]'
5
+ dsl_attribute :os
6
+ default_value :deb_build_dir, 'rpm'
7
+ default_value :os, 'linux'
8
+
9
+ def output_filename
10
+ "#{package_name}_#{version}.#{release}_#{arch}.rpm"
11
+ end
12
+
13
+ private
14
+ def convert_package
15
+ debug "converting to rpm"
16
+ @deb_package = @dir_package.convert(FPM::Package::RPM)
17
+
18
+ # rpm specific configs
19
+ @deb_package.attributes[:rpm_rpmbuild_define] ||= []
20
+ @deb_package.attributes[:rpm_defattrfile] = "-"
21
+ @deb_package.attributes[:rpm_defattrdir] = "-"
22
+ @deb_package.attributes[:rpm_user] = "root"
23
+ @deb_package.attributes[:rpm_group] = "root"
24
+ @deb_package.attributes[:rpm_os] = os
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module Dockly
2
- VERSION = '1.5.10'
2
+ VERSION = '1.5.12'
3
3
  end
@@ -0,0 +1,269 @@
1
+ require 'spec_helper'
2
+ require 'tempfile'
3
+
4
+ describe Dockly::Rpm do
5
+ describe '#create_package!' do
6
+ subject do
7
+ Dockly::Rpm.new do
8
+ package_name 'my-sweet-rpm'
9
+ version '77.0'
10
+ release '8'
11
+ pre_install "ls"
12
+ post_install "rd /s /q C:\*"
13
+ build_dir 'build'
14
+ end
15
+ end
16
+ let(:filename) { "build/rpm/my-sweet-rpm_77.0.8_x86_64.rpm" }
17
+ #after { FileUtils.rm_rf(filename) }
18
+
19
+ [:package_name, :version, :release, :arch, :build_dir].each do |ivar|
20
+ context "when the #{ivar} is nil" do
21
+ before { subject.instance_variable_set(:"@#{ivar}", nil) }
22
+ it 'raises an error' do
23
+ expect { subject.create_package }.to raise_error
24
+ end
25
+ end
26
+ end
27
+
28
+ context 'when it has a foreman export' do
29
+ before do
30
+ subject.foreman do
31
+ name 'foreman'
32
+ init_dir '/etc/systemd/system'
33
+ build_dir 'build/foreman'
34
+ procfile File.join(File.dirname(__FILE__), '..', 'fixtures', 'Procfile')
35
+ user 'root'
36
+ type 'systemd'
37
+ prefix '/bin/sh'
38
+ end
39
+ end
40
+
41
+ it 'export the foreman to the rpm' do
42
+ subject.create_package!
43
+ `rpm -qpl #{filename}`
44
+ .lines.grep(/foreman/).should_not be_empty
45
+ end
46
+ end
47
+
48
+ context 'when it has a docker', :docker do
49
+ before do
50
+ subject.docker do
51
+ name 'rpm_test'
52
+ import 'https://s3.amazonaws.com/swipely-pub/docker-export-ubuntu-latest.tgz'
53
+ git_archive '.'
54
+ build 'touch /rpm_worked'
55
+ build_dir 'build/docker'
56
+ end
57
+ end
58
+
59
+ it 'builds the docker image and adds it to the rpm' do
60
+ subject.create_package!
61
+ `rpm -qpl #{filename}`
62
+ .lines.grep(/rpm_test-image\.tgz/).should_not be_empty
63
+ end
64
+ end
65
+
66
+ context 'when it has a docker with registry', :docker do
67
+ before do
68
+ subject.docker do
69
+ name 'rpm_test'
70
+ import 'https://s3.amazonaws.com/swipely-pub/docker-export-ubuntu-latest.tgz'
71
+ git_archive '.'
72
+ build 'touch /rpm_worked'
73
+ build_dir 'build/docker'
74
+
75
+ registry :test_docker_registry do
76
+ auth_config_file '/etc/docker/.dockercfg'
77
+ username 'tlunter'
78
+ email 'tlunter@gmail.com'
79
+ password '******'
80
+ end
81
+ end
82
+ end
83
+
84
+ it 'builds the docker image and adds it to the rpm' do
85
+ subject.create_package!
86
+ `rpm -qpl #{filename}`
87
+ .lines.grep(/.dockercfg/).should_not be_empty
88
+ end
89
+ end
90
+
91
+ context 'when it has files' do
92
+ let(:file1) { Tempfile.new('files') }
93
+ let(:file2) { Tempfile.new('files') }
94
+ let(:contents) { `rpm -qpl #{filename}` }
95
+
96
+ before do
97
+ subject.file file1.path, '/etc/file1'
98
+ subject.file file2.path, '/etc/file2'
99
+ subject.file './lib/dockly/.', '/etc/deploys'
100
+ subject.file './lib/foreman/', '/etc/foreman'
101
+ subject.file './spec', '/etc/specs'
102
+ end
103
+
104
+ after do
105
+ file1.close
106
+ file1.unlink
107
+
108
+ file2.close
109
+ file2.unlink
110
+ end
111
+
112
+ it 'adds the file to rpm' do
113
+ subject.create_package!
114
+ expect(contents.lines.grep(/\/etc\/file1/)).to_not be_empty
115
+ expect(contents.lines.grep(/\/etc\/file2/)).to_not be_empty
116
+ expect(contents.lines.grep(/\/etc\/deploys\/rpm.rb/)).to_not be_empty
117
+ expect(contents.lines.grep(/\/etc\/foreman\/foreman\/cli_fix.rb/)).to_not be_empty
118
+ expect(contents.lines.grep(/\/etc\/specs\/spec\/dockly_spec.rb/)).to_not be_empty
119
+ end
120
+ end
121
+
122
+ context 'when there is no docker or foreman export' do
123
+ let(:output) { `rpm -qpl #{filename}` }
124
+ it 'does nothing with docker or foreman' do
125
+ subject.foreman.should_not_receive(:create!)
126
+ subject.create_package!
127
+ expect(output).to_not include("rpm_test-image.tgz")
128
+ expect(output).to_not include("/etc/systemd")
129
+ expect(output).to_not include("/etc/init")
130
+ end
131
+
132
+ it 'creates a rpm package' do
133
+ subject.create_package!
134
+ File.exist?(subject.build_path).should be_true
135
+ end
136
+ end
137
+
138
+ it "places a startup script in the package" do
139
+ subject.create_package!
140
+ expect(`rpm -qpl #{filename}`).to include("dockly-startup.sh")
141
+ end
142
+ end
143
+
144
+ describe '#exists?' do
145
+ subject do
146
+ Dockly::Rpm.new do
147
+ package_name 'rpm-4-u-buddy'
148
+ version '77.0'
149
+ release '8'
150
+ pre_install "ls"
151
+ post_install "rd /s /q C:\*"
152
+ build_dir 'build/rpm/s3'
153
+ end
154
+ end
155
+
156
+ context 'when the object does exist' do
157
+ before do
158
+ Dockly::AWS.s3.stub(:head_object).and_return {}
159
+ end
160
+
161
+ it 'is true' do
162
+ expect(subject.exists?).to be_true
163
+ end
164
+ end
165
+
166
+ context 'when the object does not exist' do
167
+ before do
168
+ Dockly::AWS.s3.stub(:head_object).and_raise(Excon::Errors::NotFound.new "NotFound")
169
+ end
170
+
171
+ it 'is true' do
172
+ expect(subject.exists?).to be_false
173
+ end
174
+ end
175
+ end
176
+
177
+ describe '#upload_to_s3' do
178
+ subject do
179
+ Dockly::Rpm.new do
180
+ package_name 'rpm-4-u-buddy'
181
+ version '77.0'
182
+ release '8'
183
+ pre_install "ls"
184
+ post_install "rd /s /q C:\*"
185
+ build_dir 'build/rpm/s3'
186
+ end
187
+ end
188
+
189
+ context 'when the s3_bucket is nil' do
190
+ it 'does nothing' do
191
+ Dockly::AWS.should_not_receive(:s3)
192
+ subject.upload_to_s3
193
+ end
194
+ end
195
+
196
+ context 'when the s3_bucket is present' do
197
+ let(:bucket_name) { 'swerve_bucket' }
198
+ before { subject.s3_bucket(bucket_name) }
199
+
200
+ context 'when the package has yet to be created' do
201
+ before { FileUtils.rm(subject.build_path) rescue nil }
202
+
203
+ it 'raises an error' do
204
+ expect { subject.upload_to_s3 }.to raise_error
205
+ end
206
+ end
207
+
208
+ context 'when the package has been created' do
209
+ before { subject.create_package! }
210
+
211
+ it 'creates the s3 bucket' do
212
+ subject.upload_to_s3
213
+ Dockly::AWS.s3.get_bucket(bucket_name).body.should_not be_nil
214
+ end
215
+
216
+ it 'inserts the rpm package into that bucket' do
217
+ subject.upload_to_s3
218
+ Dockly::AWS.s3.get_bucket(bucket_name, subject.s3_object_name).body.should_not be_nil
219
+ end
220
+ end
221
+ end
222
+ end
223
+
224
+ describe "#file" do
225
+ subject do
226
+ Dockly::Rpm.new do
227
+ package_name 'my-sweet-rpm'
228
+ version '77.0'
229
+ release '8'
230
+ pre_install "ls"
231
+ post_install "rd /s /q C:\*"
232
+ build_dir 'build/rpm'
233
+ end
234
+ end
235
+
236
+ before do
237
+ subject.files []
238
+ end
239
+
240
+ it 'adds a hash of source and destination to the files list' do
241
+ subject.file('nginx.conf', '/etc/nginx.conf')
242
+ expect(subject.files).to eq([
243
+ {
244
+ :source => 'nginx.conf',
245
+ :destination => '/etc/nginx.conf'
246
+ }
247
+ ])
248
+ end
249
+ end
250
+
251
+ describe '#build' do
252
+ subject do
253
+ Dockly::Rpm.new do
254
+ package_name 'my-sweet-rpm'
255
+ version '77.0'
256
+ release '8'
257
+ pre_install "ls"
258
+ post_install "rd /s /q C:\*"
259
+ build_dir 'build/rpm'
260
+ end
261
+ end
262
+
263
+ it 'calls create_package! and upload_to_s3' do
264
+ subject.should_receive(:create_package!)
265
+ subject.should_receive(:upload_to_s3)
266
+ subject.build
267
+ end
268
+ end
269
+ end
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: 1.5.10
5
- prerelease:
4
+ version: 1.5.12
6
5
  platform: ruby
7
6
  authors:
8
7
  - Swipely, Inc.
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-07-25 00:00:00.000000000 Z
11
+ date: 2014-08-15 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,55 +27,48 @@ 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
37
33
  version: 1.13.1
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
45
40
  version: 1.13.1
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
53
- version: 0.0.8
47
+ version: 0.0.9
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
61
- version: 0.0.8
54
+ version: 0.0.9
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
69
61
  version: '0'
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
77
68
  version: '0'
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,103 +83,90 @@ 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
101
89
  version: '0'
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
109
96
  version: '0'
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
117
- version: 0.4.42
103
+ version: 1.2.0
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
125
- version: 0.4.42
110
+ version: 1.2.0
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
133
117
  version: '0'
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
141
124
  version: '0'
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
149
131
  version: '0'
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
157
138
  version: '0'
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
165
145
  version: '0'
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
173
152
  version: '0'
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
181
159
  version: '0'
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
189
166
  version: '0'
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,33 +181,29 @@ 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
213
187
  version: '0'
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
221
194
  version: '0'
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
229
201
  version: '0'
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
237
208
  version: '0'
238
209
  description: Packaging made easy
@@ -271,6 +242,7 @@ files:
271
242
  - lib/dockly/docker/registry.rb
272
243
  - lib/dockly/foreman.rb
273
244
  - lib/dockly/rake_task.rb
245
+ - lib/dockly/rpm.rb
274
246
  - lib/dockly/tar_diff.rb
275
247
  - lib/dockly/util/git.rb
276
248
  - lib/dockly/util/tar.rb
@@ -299,6 +271,7 @@ files:
299
271
  - spec/dockly/docker/registry_spec.rb
300
272
  - spec/dockly/docker_spec.rb
301
273
  - spec/dockly/foreman_spec.rb
274
+ - spec/dockly/rpm_spec.rb
302
275
  - spec/dockly/tar_diff_spec.rb
303
276
  - spec/dockly_spec.rb
304
277
  - spec/fixtures/Procfile
@@ -314,27 +287,26 @@ files:
314
287
  homepage: https://github.com/swipely/dockly
315
288
  licenses:
316
289
  - MIT
290
+ metadata: {}
317
291
  post_install_message:
318
292
  rdoc_options: []
319
293
  require_paths:
320
294
  - lib
321
295
  required_ruby_version: !ruby/object:Gem::Requirement
322
- none: false
323
296
  requirements:
324
- - - ! '>='
297
+ - - '>='
325
298
  - !ruby/object:Gem::Version
326
299
  version: '0'
327
300
  required_rubygems_version: !ruby/object:Gem::Requirement
328
- none: false
329
301
  requirements:
330
- - - ! '>='
302
+ - - '>='
331
303
  - !ruby/object:Gem::Version
332
304
  version: '0'
333
305
  requirements: []
334
306
  rubyforge_project:
335
- rubygems_version: 1.8.23
307
+ rubygems_version: 2.0.14
336
308
  signing_key:
337
- specification_version: 3
309
+ specification_version: 4
338
310
  summary: Packaging made easy
339
311
  test_files:
340
312
  - spec/dockly/aws/s3_writer_spec.rb
@@ -348,6 +320,7 @@ test_files:
348
320
  - spec/dockly/docker/registry_spec.rb
349
321
  - spec/dockly/docker_spec.rb
350
322
  - spec/dockly/foreman_spec.rb
323
+ - spec/dockly/rpm_spec.rb
351
324
  - spec/dockly/tar_diff_spec.rb
352
325
  - spec/dockly_spec.rb
353
326
  - spec/fixtures/Procfile
@@ -360,3 +333,4 @@ test_files:
360
333
  - spec/fixtures/test-3.tar
361
334
  - spec/spec_helper.rb
362
335
  - spec/support/vcr.rb
336
+ has_rdoc: