dockly 4.0.0 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/workflows/unit_test.yml +32 -0
- data/README.md +2 -4
- data/dockly.gemspec +6 -4
- data/lib/dockly/bash_builder.rb +1 -1
- data/lib/dockly/deb.rb +4 -2
- data/lib/dockly/docker.rb +5 -1
- data/lib/dockly/rpm.rb +1 -0
- data/lib/dockly/version.rb +1 -1
- data/lib/dockly.rb +3 -1
- data/snippets/auth_ecr.erb +4 -1
- data/snippets/docker_tag_latest.erb +1 -1
- data/spec/dockly/bash_builder_spec.rb +2 -2
- data/spec/dockly/build_cache/base_spec.rb +18 -8
- data/spec/dockly/deb_spec.rb +33 -12
- data/spec/dockly/docker_spec.rb +107 -2
- data/spec/dockly/rpm_spec.rb +31 -11
- metadata +44 -15
- data/.travis.yml +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1d559fd7ce411c6076af71e0f8f4b6adef86d031
|
4
|
+
data.tar.gz: 03b47c8b32f2f8d3bb9ed086137cae8f866eb442
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 314390a7a78bca39bbdfb10d2dc08e6b97e15b68629699a640d06dfe3f50873b516e5e4f6a144f2b4aa47c0034ca9ba6c90934eccaef840019690ed1f0fcaaeb
|
7
|
+
data.tar.gz: b930cbc3fe513907ef02e8f15437ef3288d3583bbd3fac5df10ae064b00bae4955efd3e9ddb5bd88cce5917df8ed7ca0e02c7a420b25b12817b9f58b07682c0f
|
@@ -0,0 +1,32 @@
|
|
1
|
+
name: Unit Tests
|
2
|
+
on: [push, pull_request]
|
3
|
+
jobs:
|
4
|
+
docker-rspec:
|
5
|
+
runs-on:
|
6
|
+
- ubuntu-18.04
|
7
|
+
strategy:
|
8
|
+
matrix:
|
9
|
+
ruby:
|
10
|
+
- 2.7
|
11
|
+
- 2.6
|
12
|
+
- 2.5
|
13
|
+
- 2.4
|
14
|
+
fail-fast: true
|
15
|
+
steps:
|
16
|
+
- uses: actions/checkout@v2
|
17
|
+
with:
|
18
|
+
fetch-depth: 0
|
19
|
+
- uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
ruby-version: ${{ matrix.ruby }}
|
22
|
+
- name: install bundler
|
23
|
+
run: |
|
24
|
+
gem install bundler -v '~> 1.17.3'
|
25
|
+
bundle update
|
26
|
+
- name: install rpm
|
27
|
+
run: |
|
28
|
+
set -x
|
29
|
+
sudo apt-get update -y
|
30
|
+
sudo apt-get install -y rpm
|
31
|
+
- name: spec tests
|
32
|
+
run: CI=true bundle exec rake
|
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
[](http://badge.fury.io/rb/dockly)
|
2
|
-
[](https://travis-ci.org/swipely/dockly)
|
3
|
-
[](https://gemnasium.com/swipely/dockly)
|
4
2
|
|
5
|
-

|
6
4
|
======================================================================
|
7
5
|
|
8
6
|
`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.
|
@@ -180,7 +178,7 @@ In addition to the above attributes, `docker` has the following references:
|
|
180
178
|
- class: `Dockly::Docker::ECR`
|
181
179
|
- description: an AWS ECR Docker registry to push to in lieu of exporting as a tar -- the registry will be automatically pulled upon installing the package
|
182
180
|
|
183
|
-
Need finer control of Docker packages? We also wrote [docker-api](https://github.com/
|
181
|
+
Need finer control of Docker packages? We also wrote [docker-api](https://github.com/upserve/docker-api).
|
184
182
|
|
185
183
|
`registry`
|
186
184
|
--------
|
data/dockly.gemspec
CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
|
|
6
6
|
gem.email = %w{tomhulihan@swipely.com bright@swipely.com toddlunter@swipely.com}
|
7
7
|
gem.description = %q{Packaging made easy}
|
8
8
|
gem.summary = %q{Packaging made easy}
|
9
|
-
gem.homepage = "https://github.com/
|
9
|
+
gem.homepage = "https://github.com/upserve/dockly"
|
10
10
|
gem.files = `git ls-files`.split($\)
|
11
11
|
gem.license = 'MIT'
|
12
12
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -14,13 +14,15 @@ Gem::Specification.new do |gem|
|
|
14
14
|
gem.name = "dockly"
|
15
15
|
gem.require_paths = %w{lib}
|
16
16
|
gem.version = Dockly::VERSION
|
17
|
-
gem.add_dependency 'clamp', '~>
|
17
|
+
gem.add_dependency 'clamp', '~> 1'
|
18
18
|
gem.add_dependency 'docker-api', '>= 1.14.0'
|
19
19
|
gem.add_dependency 'dockly-util', '>= 0.0.9', '< 1.0'
|
20
20
|
gem.add_dependency 'excon'
|
21
|
-
gem.add_dependency 'aws-sdk', '~>
|
21
|
+
gem.add_dependency 'aws-sdk-core', '~> 3'
|
22
|
+
gem.add_dependency 'aws-sdk-s3', '~> 1'
|
23
|
+
gem.add_dependency 'aws-sdk-ecr', '~> 1'
|
22
24
|
gem.add_dependency 'foreman'
|
23
|
-
gem.add_dependency 'fpm', '~> 1.2
|
25
|
+
gem.add_dependency 'fpm', '~> 1.2'
|
24
26
|
gem.add_dependency 'minigit', '~> 0.0.4'
|
25
27
|
gem.add_development_dependency 'cane'
|
26
28
|
gem.add_development_dependency 'pry'
|
data/lib/dockly/bash_builder.rb
CHANGED
@@ -26,6 +26,6 @@ module Dockly
|
|
26
26
|
generate_snippet_for :registry_import, [:repo, :tag], { :tag => "latest" }
|
27
27
|
generate_snippet_for :auth_ecr, [:server_address]
|
28
28
|
|
29
|
-
generate_snippet_for :docker_tag_latest, [:repo, :tag]
|
29
|
+
generate_snippet_for :docker_tag_latest, [:repo, :tag, :new_name]
|
30
30
|
end
|
31
31
|
end
|
data/lib/dockly/deb.rb
CHANGED
@@ -226,12 +226,13 @@ private
|
|
226
226
|
if registry.is_a?(Dockly::Docker::ECR)
|
227
227
|
scripts << bb.auth_ecr(registry.server_address)
|
228
228
|
end
|
229
|
+
|
229
230
|
scripts << bb.registry_import(docker.repo, docker.tag)
|
231
|
+
scripts << bb.docker_tag_latest(docker.repo, docker.tag, docker.name)
|
230
232
|
else
|
231
233
|
scripts += collect_non_registry_scripts(bb)
|
232
234
|
end
|
233
235
|
end
|
234
|
-
|
235
236
|
scripts.join("\n")
|
236
237
|
end
|
237
238
|
|
@@ -252,7 +253,8 @@ private
|
|
252
253
|
scripts << bb.s3_docker_import(docker.s3_url, docker.name, docker.tag)
|
253
254
|
end
|
254
255
|
end
|
255
|
-
|
256
|
+
|
257
|
+
scripts << bb.docker_tag_latest(docker.repo, docker.tag, docker.repo)
|
256
258
|
end
|
257
259
|
|
258
260
|
def add_startup_script(package, startup_script = "dockly-startup.sh")
|
data/lib/dockly/docker.rb
CHANGED
@@ -339,7 +339,11 @@ class Dockly::Docker
|
|
339
339
|
|
340
340
|
raise "Could not find image after authentication" if image.nil?
|
341
341
|
|
342
|
-
image.push(registry.to_h, :registry => registry.server_address)
|
342
|
+
image.push(registry.to_h, :registry => registry.server_address) do |resp|
|
343
|
+
if resp.include?('errorDetail')
|
344
|
+
raise "Error pushing to registry: #{resp}"
|
345
|
+
end
|
346
|
+
end
|
343
347
|
end
|
344
348
|
|
345
349
|
def fetch_import
|
data/lib/dockly/rpm.rb
CHANGED
data/lib/dockly/version.rb
CHANGED
data/lib/dockly.rb
CHANGED
data/snippets/auth_ecr.erb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
auth_ecr() {
|
2
|
-
|
2
|
+
account_id=$(aws sts get-caller-identity --query Account --output text)
|
3
|
+
region="<%= ENV['AWS_REGION'] || 'us-east-1' %>"
|
4
|
+
aws ecr get-login-password --region $region | \
|
5
|
+
docker login --username AWS --password-stdin $account_id.dkr.ecr.$region.amazonaws.com
|
3
6
|
}
|
4
7
|
|
5
8
|
worked=1
|
@@ -32,8 +32,8 @@ describe Dockly::BashBuilder do
|
|
32
32
|
|
33
33
|
context "when there is a tag" do
|
34
34
|
it "tags the repo:tag as repo:latest" do
|
35
|
-
output = subject.docker_tag_latest("test_repo", "a_tag")
|
36
|
-
expect(output).to include("docker tag test_repo:a_tag test_repo:latest")
|
35
|
+
output = subject.docker_tag_latest("registry/test_repo", "a_tag", "test_repo")
|
36
|
+
expect(output).to include("docker tag registry/test_repo:a_tag test_repo:latest")
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
@@ -14,8 +14,11 @@ describe Dockly::BuildCache::Base do
|
|
14
14
|
describe '#up_to_date?' do
|
15
15
|
context 'when the object exists in s3' do
|
16
16
|
before do
|
17
|
-
allow(
|
18
|
-
.to receive(:
|
17
|
+
allow(Dockly)
|
18
|
+
.to receive(:s3)
|
19
|
+
.and_return(
|
20
|
+
Aws::S3::Client.new(stub_responses: true)
|
21
|
+
)
|
19
22
|
end
|
20
23
|
|
21
24
|
its(:up_to_date?) { should be_true }
|
@@ -23,9 +26,13 @@ describe Dockly::BuildCache::Base do
|
|
23
26
|
|
24
27
|
context 'when the object does not exist in s3' do
|
25
28
|
before do
|
26
|
-
allow(
|
27
|
-
.to receive(:
|
28
|
-
.
|
29
|
+
allow(Dockly)
|
30
|
+
.to receive(:s3)
|
31
|
+
.and_return(
|
32
|
+
Aws::S3::Client.new(
|
33
|
+
stub_responses: { :head_object => 'NoSuchKey' }
|
34
|
+
)
|
35
|
+
)
|
29
36
|
end
|
30
37
|
|
31
38
|
its(:up_to_date?) { should be_false }
|
@@ -37,9 +44,12 @@ describe Dockly::BuildCache::Base do
|
|
37
44
|
let(:object) { double(:object) }
|
38
45
|
|
39
46
|
before do
|
40
|
-
allow(
|
41
|
-
.to receive(:
|
42
|
-
.and_return(
|
47
|
+
allow(Dockly)
|
48
|
+
.to receive(:s3)
|
49
|
+
.and_return(Aws::S3::Client.new(
|
50
|
+
stub_responses: { :get_object => object }
|
51
|
+
))
|
52
|
+
|
43
53
|
allow(object)
|
44
54
|
.to receive(:body)
|
45
55
|
.and_return(StringIO.new('hey dad').tap(&:rewind))
|
data/spec/dockly/deb_spec.rb
CHANGED
@@ -205,14 +205,19 @@ describe Dockly::Deb do
|
|
205
205
|
pre_install "ls"
|
206
206
|
post_install "rd /s /q C:\*"
|
207
207
|
build_dir 'build/deb/s3'
|
208
|
+
s3_bucket 'bucket'
|
208
209
|
end
|
209
210
|
end
|
210
211
|
|
211
212
|
context 'when the object does exist' do
|
212
213
|
before do
|
213
|
-
allow(Dockly
|
214
|
-
.to receive(:
|
215
|
-
.and_return(
|
214
|
+
allow(Dockly)
|
215
|
+
.to receive(:s3)
|
216
|
+
.and_return(
|
217
|
+
Aws::S3::Client.new(
|
218
|
+
stub_responses: { :head_object => {} }
|
219
|
+
)
|
220
|
+
)
|
216
221
|
end
|
217
222
|
|
218
223
|
it 'is true' do
|
@@ -222,12 +227,16 @@ describe Dockly::Deb do
|
|
222
227
|
|
223
228
|
context 'when the object does not exist' do
|
224
229
|
before do
|
225
|
-
allow(Dockly
|
226
|
-
.to receive(:
|
227
|
-
.
|
230
|
+
allow(Dockly)
|
231
|
+
.to receive(:s3)
|
232
|
+
.and_return(
|
233
|
+
Aws::S3::Client.new(
|
234
|
+
stub_responses: { :head_object => 'ObjectDoesNotExist' }
|
235
|
+
)
|
236
|
+
)
|
228
237
|
end
|
229
238
|
|
230
|
-
it 'is
|
239
|
+
it 'is false' do
|
231
240
|
expect(subject.exists?).to be_false
|
232
241
|
end
|
233
242
|
end
|
@@ -267,12 +276,24 @@ describe Dockly::Deb do
|
|
267
276
|
context 'when the package has been created' do
|
268
277
|
before { subject.create_package! }
|
269
278
|
|
279
|
+
let(:client) do
|
280
|
+
client = Aws::S3::Client.new(stub_responses: true)
|
281
|
+
client.stub_responses(
|
282
|
+
:put_object, ->(context) do
|
283
|
+
expect(context.params[:bucket]).to eq(bucket_name)
|
284
|
+
expect(context.params[:key]).to eq(subject.s3_object_name)
|
285
|
+
expect(context.params).to have_key(:body)
|
286
|
+
|
287
|
+
{}
|
288
|
+
end
|
289
|
+
)
|
290
|
+
client
|
291
|
+
end
|
292
|
+
|
270
293
|
it 'inserts the deb package into that bucket' do
|
271
|
-
expect(Dockly
|
272
|
-
|
273
|
-
|
274
|
-
expect(hash).to have_key(:body)
|
275
|
-
end
|
294
|
+
expect(Dockly)
|
295
|
+
.to receive(:s3)
|
296
|
+
.and_return(client)
|
276
297
|
|
277
298
|
subject.upload_to_s3
|
278
299
|
end
|
data/spec/dockly/docker_spec.rb
CHANGED
@@ -204,11 +204,15 @@ describe Dockly::Docker do
|
|
204
204
|
let(:url) { 's3://bucket/object' }
|
205
205
|
let(:data) { 'sweet, sweet data' }
|
206
206
|
|
207
|
+
let(:client) { double() }
|
208
|
+
|
207
209
|
before do
|
208
|
-
allow(
|
210
|
+
allow(client)
|
209
211
|
.to receive(:get_object)
|
210
|
-
.with(bucket: 'bucket', key: 'object')
|
212
|
+
.with(hash_including({ bucket: 'bucket', key: 'object' }))
|
211
213
|
.and_yield(data)
|
214
|
+
|
215
|
+
allow(Dockly).to receive(:s3).and_return(client)
|
212
216
|
end
|
213
217
|
|
214
218
|
it 'pulls the file from S3' do
|
@@ -313,6 +317,107 @@ describe Dockly::Docker do
|
|
313
317
|
end
|
314
318
|
end
|
315
319
|
|
320
|
+
describe '#push_to_registry', :docker do
|
321
|
+
let(:image) { Docker::Image.create('fromImage' => 'ubuntu:14.04') }
|
322
|
+
let(:ecr) { double(:ecr) }
|
323
|
+
|
324
|
+
context 'when there is no registry' do
|
325
|
+
it 'raises' do
|
326
|
+
expect(subject.registry).to eq(nil)
|
327
|
+
|
328
|
+
expect { subject.push_to_registry(image) }.to raise_error(/No registry/)
|
329
|
+
end
|
330
|
+
end
|
331
|
+
|
332
|
+
context 'when there is a registry' do
|
333
|
+
before do
|
334
|
+
subject.instance_variable_set(:"@ecr", ecr)
|
335
|
+
|
336
|
+
allow(ecr)
|
337
|
+
.to receive(:server_address)
|
338
|
+
.and_return('server_address')
|
339
|
+
|
340
|
+
expect(subject.registry).to eq(ecr)
|
341
|
+
end
|
342
|
+
|
343
|
+
context "that can't be authenticated to" do
|
344
|
+
before do
|
345
|
+
allow(ecr)
|
346
|
+
.to receive(:authenticate!)
|
347
|
+
.and_raise
|
348
|
+
end
|
349
|
+
|
350
|
+
it 'raises' do
|
351
|
+
expect { subject.push_to_registry(image) }
|
352
|
+
.to raise_error(StandardError)
|
353
|
+
end
|
354
|
+
end
|
355
|
+
|
356
|
+
context 'that can be authenticated to' do
|
357
|
+
before do
|
358
|
+
allow(ecr).to receive(:authenticate!)
|
359
|
+
|
360
|
+
allow(Docker::Image)
|
361
|
+
.to receive(:all)
|
362
|
+
.with(all: true)
|
363
|
+
.and_return(available_images)
|
364
|
+
end
|
365
|
+
|
366
|
+
context "but the image isn't found" do
|
367
|
+
let(:available_images) { [] }
|
368
|
+
|
369
|
+
it 'raises' do
|
370
|
+
expect { subject.push_to_registry(image) }
|
371
|
+
.to raise_error(/Could not find image after authentication/)
|
372
|
+
end
|
373
|
+
end
|
374
|
+
|
375
|
+
context 'and the image is found' do
|
376
|
+
let(:available_images) { [image] }
|
377
|
+
|
378
|
+
before do
|
379
|
+
allow(ecr)
|
380
|
+
.to receive(:to_h)
|
381
|
+
.and_return({})
|
382
|
+
allow(image)
|
383
|
+
.to receive(:push)
|
384
|
+
.and_yield(push_message)
|
385
|
+
end
|
386
|
+
|
387
|
+
context 'but the push to the registry fails' do
|
388
|
+
let(:push_message) do
|
389
|
+
<<-EOF
|
390
|
+
{"errorDetail":{"message":"name unknown: The repository with name 'repository'
|
391
|
+
does not exist in the registry with id 'accoundid'"},"error":"name unknown:
|
392
|
+
The repository with name 'repository' does not exist in the registry with id 'accountid'"}
|
393
|
+
EOF
|
394
|
+
end
|
395
|
+
|
396
|
+
it 'raises' do
|
397
|
+
expect { subject.push_to_registry(image) }
|
398
|
+
.to raise_error(/Error pushing to registry/)
|
399
|
+
end
|
400
|
+
end
|
401
|
+
|
402
|
+
context 'and the push to the registry succeeds' do
|
403
|
+
let(:push_message) do
|
404
|
+
<<-EOF
|
405
|
+
{"status":"Pushed","progressDetail":{},"id":"id"}
|
406
|
+
{"status":"sha: digest: digest size: 2048"}
|
407
|
+
{"progressDetail":{},"aux":{"Tag":"sha","Digest":"digest","Size":2048}}
|
408
|
+
EOF
|
409
|
+
end
|
410
|
+
|
411
|
+
it 'passes' do
|
412
|
+
expect(subject.push_to_registry(image))
|
413
|
+
.not_to raise_error
|
414
|
+
end
|
415
|
+
end
|
416
|
+
end
|
417
|
+
end
|
418
|
+
end
|
419
|
+
end
|
420
|
+
|
316
421
|
describe '#export_image_diff', :docker do
|
317
422
|
let(:images) { [] }
|
318
423
|
let(:output) { StringIO.new }
|
data/spec/dockly/rpm_spec.rb
CHANGED
@@ -11,6 +11,7 @@ describe Dockly::Rpm do
|
|
11
11
|
pre_install "ls"
|
12
12
|
post_install "rd /s /q C:\*"
|
13
13
|
build_dir 'build'
|
14
|
+
s3_bucket 'bucket'
|
14
15
|
end
|
15
16
|
end
|
16
17
|
let(:filename) { "build/rpm/my-sweet-rpm_77.0.8_x86_64.rpm" }
|
@@ -173,14 +174,17 @@ describe Dockly::Rpm do
|
|
173
174
|
pre_install "ls"
|
174
175
|
post_install "rd /s /q C:\*"
|
175
176
|
build_dir 'build/rpm/s3'
|
177
|
+
s3_bucket 'bucket'
|
176
178
|
end
|
177
179
|
end
|
178
180
|
|
179
181
|
context 'when the object does exist' do
|
180
182
|
before do
|
181
|
-
allow(Dockly
|
182
|
-
.to receive(:
|
183
|
-
.and_return(
|
183
|
+
allow(Dockly)
|
184
|
+
.to receive(:s3)
|
185
|
+
.and_return(
|
186
|
+
Aws::S3::Client.new(stub_responses: true)
|
187
|
+
)
|
184
188
|
end
|
185
189
|
|
186
190
|
it 'is true' do
|
@@ -190,9 +194,13 @@ describe Dockly::Rpm do
|
|
190
194
|
|
191
195
|
context 'when the object does not exist' do
|
192
196
|
before do
|
193
|
-
allow(Dockly
|
194
|
-
.to receive(:
|
195
|
-
.
|
197
|
+
allow(Dockly)
|
198
|
+
.to receive(:s3)
|
199
|
+
.and_return(
|
200
|
+
Aws::S3::Client.new(
|
201
|
+
stub_responses: { :head_object => 'NoSuchKey' }
|
202
|
+
)
|
203
|
+
)
|
196
204
|
end
|
197
205
|
|
198
206
|
it 'is true' do
|
@@ -235,12 +243,24 @@ describe Dockly::Rpm do
|
|
235
243
|
context 'when the package has been created' do
|
236
244
|
before { subject.create_package! }
|
237
245
|
|
246
|
+
let(:client) do
|
247
|
+
client = Aws::S3::Client.new(stub_responses: true)
|
248
|
+
client.stub_responses(
|
249
|
+
:put_object, ->(context) do
|
250
|
+
expect(context.params[:bucket]).to eq(bucket_name)
|
251
|
+
expect(context.params[:key]).to eq(subject.s3_object_name)
|
252
|
+
expect(context.params).to have_key(:body)
|
253
|
+
|
254
|
+
{}
|
255
|
+
end
|
256
|
+
)
|
257
|
+
client
|
258
|
+
end
|
259
|
+
|
238
260
|
it 'inserts the rpm package into that bucket' do
|
239
|
-
expect(Dockly
|
240
|
-
|
241
|
-
|
242
|
-
expect(hash).to have_key(:body)
|
243
|
-
end
|
261
|
+
expect(Dockly)
|
262
|
+
.to receive(:s3)
|
263
|
+
.and_return(client)
|
244
264
|
|
245
265
|
subject.upload_to_s3
|
246
266
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dockly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Swipely, Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clamp
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: docker-api
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,19 +73,47 @@ dependencies:
|
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
|
-
name: aws-sdk
|
76
|
+
name: aws-sdk-core
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
81
|
+
version: '3'
|
82
82
|
type: :runtime
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
88
|
+
version: '3'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: aws-sdk-s3
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '1'
|
96
|
+
type: :runtime
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '1'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: aws-sdk-ecr
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '1'
|
89
117
|
- !ruby/object:Gem::Dependency
|
90
118
|
name: foreman
|
91
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,14 +134,14 @@ dependencies:
|
|
106
134
|
requirements:
|
107
135
|
- - "~>"
|
108
136
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.2
|
137
|
+
version: '1.2'
|
110
138
|
type: :runtime
|
111
139
|
prerelease: false
|
112
140
|
version_requirements: !ruby/object:Gem::Requirement
|
113
141
|
requirements:
|
114
142
|
- - "~>"
|
115
143
|
- !ruby/object:Gem::Version
|
116
|
-
version: 1.2
|
144
|
+
version: '1.2'
|
117
145
|
- !ruby/object:Gem::Dependency
|
118
146
|
name: minigit
|
119
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -237,10 +265,10 @@ extensions: []
|
|
237
265
|
extra_rdoc_files: []
|
238
266
|
files:
|
239
267
|
- ".cane"
|
268
|
+
- ".github/workflows/unit_test.yml"
|
240
269
|
- ".gitignore"
|
241
270
|
- ".rspec"
|
242
271
|
- ".ruby-version"
|
243
|
-
- ".travis.yml"
|
244
272
|
- Gemfile
|
245
273
|
- LICENSE.txt
|
246
274
|
- README.md
|
@@ -307,11 +335,11 @@ files:
|
|
307
335
|
- spec/fixtures/test-2.tar.gz
|
308
336
|
- spec/fixtures/test-3.tar
|
309
337
|
- spec/spec_helper.rb
|
310
|
-
homepage: https://github.com/
|
338
|
+
homepage: https://github.com/upserve/dockly
|
311
339
|
licenses:
|
312
340
|
- MIT
|
313
341
|
metadata: {}
|
314
|
-
post_install_message:
|
342
|
+
post_install_message:
|
315
343
|
rdoc_options: []
|
316
344
|
require_paths:
|
317
345
|
- lib
|
@@ -326,8 +354,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
326
354
|
- !ruby/object:Gem::Version
|
327
355
|
version: '0'
|
328
356
|
requirements: []
|
329
|
-
|
330
|
-
|
357
|
+
rubyforge_project:
|
358
|
+
rubygems_version: 2.5.1
|
359
|
+
signing_key:
|
331
360
|
specification_version: 4
|
332
361
|
summary: Packaging made easy
|
333
362
|
test_files:
|
data/.travis.yml
DELETED