puppet_docker_tools 0.1.0 → 0.1.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0cced50b6cd276b28389615a751ad0946a6e3196
|
4
|
+
data.tar.gz: 30084e7aebeee1dd037537bdb6ad521ff33376b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2612cf5a9ce5c38bd1518c503f72c0943e4517ad6ba789e5573c562123604f9bd0978b4e4c5ceefeaff286ccef2da78868a93e7d3588263495da970d4551eca7
|
7
|
+
data.tar.gz: fe1ae2b95ab05230b2aeb780a111c286fde043ebe068af55dd9f4560a59412f44d8d1275fc78f7f72960035e37f6443d5cdb0a91e062586b027c031b1d49427e
|
data/README.md
CHANGED
@@ -44,6 +44,7 @@ Build a docker image based on the dockerfile in DIRECTORY.
|
|
44
44
|
|
45
45
|
Run [hadolint](https://github.com/hadolint/hadolint) on the dockerfile in DIRECTORY. The lint task runs on the `hadolint/hadolint` container with the following rule exclusions:
|
46
46
|
* [DL3008](https://github.com/hadolint/hadolint/wiki/DL3008) - Pin versions in apt get install
|
47
|
+
* [DL3018](https://github.com/hadolint/hadolint/wiki/DL3018) - Pin versions in apk install
|
47
48
|
* [DL4000](https://github.com/hadolint/hadolint/wiki/DL4000) - MAINTAINER is deprecated
|
48
49
|
* [DL4001](https://github.com/hadolint/hadolint/wiki/DL4001) - Don't use both wget and curl
|
49
50
|
|
@@ -3,7 +3,7 @@ require 'docker'
|
|
3
3
|
require 'rspec/core'
|
4
4
|
require 'time'
|
5
5
|
require 'puppet_docker_tools/utilities'
|
6
|
-
require
|
6
|
+
require 'puppet_docker_tools/spec_helper'
|
7
7
|
|
8
8
|
class PuppetDockerTools
|
9
9
|
class Runner
|
@@ -52,9 +52,17 @@ class PuppetDockerTools
|
|
52
52
|
#
|
53
53
|
def lint
|
54
54
|
hadolint_container = 'hadolint/hadolint'
|
55
|
+
ignore_rules = [
|
56
|
+
'DL3008',
|
57
|
+
'DL3018',
|
58
|
+
'DL4000',
|
59
|
+
'DL4001',
|
60
|
+
]
|
61
|
+
ignore_string = ignore_rules.map { |x| "--ignore #{x}" }.join(' ')
|
62
|
+
|
55
63
|
# make sure we have the container locally
|
56
64
|
PuppetDockerTools::Utilities.pull("#{hadolint_container}:latest")
|
57
|
-
container = Docker::Container.create('Cmd' => ['/bin/sh', '-c', "hadolint
|
65
|
+
container = Docker::Container.create('Cmd' => ['/bin/sh', '-c', "hadolint #{ignore_string} - "], 'Image' => hadolint_container, 'OpenStdin' => true, 'StdinOnce' => true)
|
58
66
|
# This container.tap startes the container created above, and passes directory/Dockerfile to the container
|
59
67
|
container.tap(&:start).attach(stdin: "#{directory}/#{dockerfile}")
|
60
68
|
# Wait for the run to finish
|
@@ -117,7 +125,18 @@ class PuppetDockerTools
|
|
117
125
|
test_files = tests.map { |test| File.basename(test, '.rb') }
|
118
126
|
|
119
127
|
puts "Running RSpec tests from #{File.expand_path("#{directory}/spec")} (#{test_files.join ","}), this may take some time"
|
120
|
-
|
128
|
+
success = true
|
129
|
+
tests.each do |test|
|
130
|
+
Open3.popen2e("rspec spec #{test}") do |stdin, output_stream, wait_thread|
|
131
|
+
while line = output_stream.gets
|
132
|
+
puts line
|
133
|
+
end
|
134
|
+
exit_status = wait_thread.value.exitstatus
|
135
|
+
success = success && (exit_status == 0)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
fail "Running RSpec tests for #{directory} failed!" unless success
|
121
140
|
end
|
122
141
|
|
123
142
|
# Get the version set in the Dockerfile in the specified directory
|
@@ -5,4 +5,4 @@ require 'docker'
|
|
5
5
|
Docker.options[:read_timeout] = 7200
|
6
6
|
|
7
7
|
# Load any shared examples or context helpers
|
8
|
-
Dir[File.join(File.dirname(__FILE__), 'support', '**', '*.rb')].sort.each { |f| require f }
|
8
|
+
Dir[File.join(File.dirname(__FILE__), '..', '..', 'spec', 'support', '**', '*.rb')].sort.each { |f| require f }
|
@@ -155,9 +155,10 @@ HERE
|
|
155
155
|
|
156
156
|
describe '#spec' do
|
157
157
|
it "runs tests under the 'spec' directory" do
|
158
|
-
tests=["/tmp/test-image/spec/test1_spec.rb", "/tmp/test-
|
158
|
+
tests=["/tmp/test-image/spec/test1_spec.rb", "/tmp/test-image/spec/test2_spec.rb"]
|
159
159
|
expect(Dir).to receive(:glob).with("/tmp/test-image/spec/*_spec.rb").and_return(tests)
|
160
|
-
expect(
|
160
|
+
expect(Open3).to receive(:popen2e).with('rspec spec /tmp/test-image/spec/test1_spec.rb')
|
161
|
+
expect(Open3).to receive(:popen2e).with('rspec spec /tmp/test-image/spec/test2_spec.rb')
|
161
162
|
runner.spec
|
162
163
|
end
|
163
164
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet_docker_tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: docker-api
|
@@ -78,10 +78,10 @@ files:
|
|
78
78
|
- bin/puppet-docker
|
79
79
|
- lib/puppet_docker_tools.rb
|
80
80
|
- lib/puppet_docker_tools/runner.rb
|
81
|
+
- lib/puppet_docker_tools/spec_helper.rb
|
81
82
|
- lib/puppet_docker_tools/utilities.rb
|
82
83
|
- spec/lib/puppet_docker_tools/runner_spec.rb
|
83
84
|
- spec/lib/puppet_docker_tools/utilities_spec.rb
|
84
|
-
- spec/spec_helper.rb
|
85
85
|
- spec/support/context/using_alpine.rb
|
86
86
|
- spec/support/context/using_centos.rb
|
87
87
|
- spec/support/context/with_docker_container.rb
|