kitchen-docker 2.15.0 → 3.0.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 +4 -4
- data/.github/dependabot.yml +5 -5
- data/.github/workflows/ci.yml +124 -0
- data/.rubocop.yml +10 -0
- data/.yamllint +15 -0
- data/kitchen-docker.gemspec +1 -0
- data/kitchen.windows.yml +33 -0
- data/kitchen.yml +62 -0
- data/lib/kitchen/docker/docker_version.rb +1 -1
- data/lib/kitchen/docker/helpers/cli_helper.rb +184 -172
- data/lib/kitchen/docker/helpers/container_helper.rb +176 -172
- data/test/integration/capabilities/{serverspec → disabled}/capabilities_drop_spec.rb +7 -6
- data/test/integration/default/{serverspec → disabled}/default_spec.rb +7 -6
- data/test/integration/default/{serverspec → disabled}/spec_helper.rb +7 -7
- data/test/spec/spec_helper.rb +1 -1
- metadata +26 -10
- data/.kitchen.windows.yml +0 -33
- data/.kitchen.yml +0 -65
- data/.travis.yml +0 -57
@@ -1,172 +1,176 @@
|
|
1
|
-
#
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
3
|
-
# you may not use this file except in compliance with the License.
|
4
|
-
# You may obtain a copy of the License at
|
5
|
-
#
|
6
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
-
#
|
8
|
-
# Unless required by applicable law or agreed to in writing, software
|
9
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
-
# See the License for the specific language governing permissions and
|
12
|
-
# limitations under the License.
|
13
|
-
|
14
|
-
require 'erb'
|
15
|
-
require 'json'
|
16
|
-
require 'shellwords'
|
17
|
-
require 'tempfile'
|
18
|
-
require 'uri'
|
19
|
-
|
20
|
-
require 'kitchen'
|
21
|
-
require 'kitchen/configurable'
|
22
|
-
require_relative '../erb_context'
|
23
|
-
require_relative 'cli_helper'
|
24
|
-
|
25
|
-
module Kitchen
|
26
|
-
module Docker
|
27
|
-
module Helpers
|
28
|
-
|
29
|
-
|
30
|
-
include
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
end
|
1
|
+
#
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
3
|
+
# you may not use this file except in compliance with the License.
|
4
|
+
# You may obtain a copy of the License at
|
5
|
+
#
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
|
14
|
+
require 'erb'
|
15
|
+
require 'json'
|
16
|
+
require 'shellwords'
|
17
|
+
require 'tempfile'
|
18
|
+
require 'uri'
|
19
|
+
|
20
|
+
require 'kitchen'
|
21
|
+
require 'kitchen/configurable'
|
22
|
+
require_relative '../erb_context'
|
23
|
+
require_relative 'cli_helper'
|
24
|
+
|
25
|
+
module Kitchen
|
26
|
+
module Docker
|
27
|
+
module Helpers
|
28
|
+
# rubocop:disable Metrics/ModuleLength, Style/Documentation
|
29
|
+
module ContainerHelper
|
30
|
+
include Configurable
|
31
|
+
include Kitchen::Docker::Helpers::CliHelper
|
32
|
+
|
33
|
+
def parse_container_id(output)
|
34
|
+
container_id = output.chomp
|
35
|
+
|
36
|
+
unless [12, 64].include?(container_id.size)
|
37
|
+
raise ActionFailed, 'Could not parse Docker run output for container ID'
|
38
|
+
end
|
39
|
+
|
40
|
+
container_id
|
41
|
+
end
|
42
|
+
|
43
|
+
def dockerfile_template
|
44
|
+
template = IO.read(File.expand_path(config[:dockerfile]))
|
45
|
+
context = Kitchen::Docker::ERBContext.new(config.to_hash)
|
46
|
+
ERB.new(template).result(context.get_binding)
|
47
|
+
end
|
48
|
+
|
49
|
+
def remote_socket?
|
50
|
+
config[:socket] ? socket_uri.scheme == 'tcp' : false
|
51
|
+
end
|
52
|
+
|
53
|
+
def socket_uri
|
54
|
+
URI.parse(config[:socket])
|
55
|
+
end
|
56
|
+
|
57
|
+
def dockerfile_path(file)
|
58
|
+
config[:build_context] ? Pathname.new(file.path).relative_path_from(Pathname.pwd).to_s : file.path
|
59
|
+
end
|
60
|
+
|
61
|
+
def container_exists?(state)
|
62
|
+
state[:container_id] && !!docker_command("top #{state[:container_id]}") rescue false
|
63
|
+
end
|
64
|
+
|
65
|
+
def container_exec(state, command)
|
66
|
+
cmd = build_exec_command(state, command)
|
67
|
+
docker_command(cmd)
|
68
|
+
rescue => e
|
69
|
+
raise "Failed to execute command on Docker container. #{e}"
|
70
|
+
end
|
71
|
+
|
72
|
+
def create_dir_on_container(state, path)
|
73
|
+
path = replace_env_variables(state, path)
|
74
|
+
cmd = "mkdir -p #{path}"
|
75
|
+
|
76
|
+
if state[:platform].include?('windows')
|
77
|
+
psh = "-Command if(-not (Test-Path \'#{path}\')) { New-Item -Path \'#{path}\' -Force }"
|
78
|
+
cmd = build_powershell_command(psh)
|
79
|
+
end
|
80
|
+
|
81
|
+
cmd = build_exec_command(state, cmd)
|
82
|
+
docker_command(cmd)
|
83
|
+
rescue => e
|
84
|
+
raise "Failed to create directory #{path} on container. #{e}"
|
85
|
+
end
|
86
|
+
|
87
|
+
def copy_file_to_container(state, local_file, remote_file)
|
88
|
+
debug("Copying local file #{local_file} to #{remote_file} on container")
|
89
|
+
|
90
|
+
remote_file = replace_env_variables(state, remote_file)
|
91
|
+
|
92
|
+
remote_file = "#{state[:container_id]}:#{remote_file}"
|
93
|
+
cmd = build_copy_command(local_file, remote_file)
|
94
|
+
docker_command(cmd)
|
95
|
+
rescue => e
|
96
|
+
raise "Failed to copy file #{local_file} to container. #{e}"
|
97
|
+
end
|
98
|
+
|
99
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
100
|
+
def container_env_variables(state)
|
101
|
+
# Retrieves all environment variables from inside container
|
102
|
+
vars = {}
|
103
|
+
|
104
|
+
if state[:platform].include?('windows')
|
105
|
+
cmd = build_powershell_command('-Command [System.Environment]::GetEnvironmentVariables() ^| ConvertTo-Json')
|
106
|
+
cmd = build_exec_command(state, cmd)
|
107
|
+
stdout = docker_command(cmd, suppress_output: !logger.debug?).strip
|
108
|
+
vars = ::JSON.parse(stdout)
|
109
|
+
else
|
110
|
+
cmd = build_exec_command(state, 'printenv')
|
111
|
+
stdout = docker_command(cmd, suppress_output: !logger.debug?).strip
|
112
|
+
stdout.split("\n").each { |line| vars[line.split('=')[0]] = line.split('=')[1] }
|
113
|
+
end
|
114
|
+
|
115
|
+
vars
|
116
|
+
end
|
117
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
118
|
+
|
119
|
+
def replace_env_variables(state, str)
|
120
|
+
if str.include?('$env:')
|
121
|
+
key = str[/\$env:(.*?)(\\|$)/, 1]
|
122
|
+
value = container_env_variables(state)[key].to_s.strip
|
123
|
+
str = str.gsub("$env:#{key}", value)
|
124
|
+
elsif str.include?('$')
|
125
|
+
key = str[/\$(.*?)(\/|$)/, 1]
|
126
|
+
value = container_env_variables(state)[key].to_s.strip
|
127
|
+
str = str.gsub("$#{key}", value)
|
128
|
+
end
|
129
|
+
|
130
|
+
str
|
131
|
+
end
|
132
|
+
|
133
|
+
def run_container(state, transport_port = nil)
|
134
|
+
cmd = build_run_command(state[:image_id], transport_port)
|
135
|
+
output = docker_command(cmd)
|
136
|
+
parse_container_id(output)
|
137
|
+
end
|
138
|
+
|
139
|
+
def container_ip_address(state)
|
140
|
+
cmd = "inspect --format '{{ .NetworkSettings.IPAddress }}'"
|
141
|
+
cmd << " #{state[:container_id]}"
|
142
|
+
docker_command(cmd).strip
|
143
|
+
rescue
|
144
|
+
raise ActionFailed, 'Error getting internal IP of Docker container'
|
145
|
+
end
|
146
|
+
|
147
|
+
def remove_container(state)
|
148
|
+
container_id = state[:container_id]
|
149
|
+
docker_command("stop -t 0 #{container_id}")
|
150
|
+
docker_command("rm #{container_id}")
|
151
|
+
end
|
152
|
+
|
153
|
+
def dockerfile_proxy_config
|
154
|
+
env_variables = ''
|
155
|
+
if config[:http_proxy]
|
156
|
+
env_variables << "ENV http_proxy #{config[:http_proxy]}\n"
|
157
|
+
env_variables << "ENV HTTP_PROXY #{config[:http_proxy]}\n"
|
158
|
+
end
|
159
|
+
|
160
|
+
if config[:https_proxy]
|
161
|
+
env_variables << "ENV https_proxy #{config[:https_proxy]}\n"
|
162
|
+
env_variables << "ENV HTTPS_PROXY #{config[:https_proxy]}\n"
|
163
|
+
end
|
164
|
+
|
165
|
+
if config[:no_proxy]
|
166
|
+
env_variables << "ENV no_proxy #{config[:no_proxy]}\n"
|
167
|
+
env_variables << "ENV NO_PROXY #{config[:no_proxy]}\n"
|
168
|
+
end
|
169
|
+
|
170
|
+
env_variables
|
171
|
+
end
|
172
|
+
end
|
173
|
+
# rubocop:enable Metrics/ModuleLength, Style/Documentation
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
@@ -14,10 +14,11 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
16
|
|
17
|
-
|
18
|
-
|
17
|
+
# Disable now busser-serever is gone.
|
18
|
+
# require 'serverspec'
|
19
|
+
# set :backend, :exec
|
19
20
|
|
20
|
-
describe command('/sbin/ifconfig eth0 multicast') do
|
21
|
-
|
22
|
-
|
23
|
-
end
|
21
|
+
# describe command('/sbin/ifconfig eth0 multicast') do
|
22
|
+
# its(:exit_status) { is_expected.to_not eq 0 }
|
23
|
+
# its(:stderr) { is_expected.to match /Operation not permitted/ }
|
24
|
+
# end
|
@@ -14,10 +14,11 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
16
|
|
17
|
-
|
18
|
-
require '
|
17
|
+
# Disable now busser-serever is gone.
|
18
|
+
# require 'serverspec'
|
19
|
+
# require 'spec_helper'
|
19
20
|
|
20
|
-
# Just make sure the image launched and is reachable.
|
21
|
-
describe command('true') do
|
22
|
-
|
23
|
-
end
|
21
|
+
# # Just make sure the image launched and is reachable.
|
22
|
+
# describe command('true') do
|
23
|
+
# its(:exit_status) { is_expected.to eq 0 }
|
24
|
+
# end
|
@@ -12,10 +12,10 @@
|
|
12
12
|
# limitations under the License.
|
13
13
|
#
|
14
14
|
|
15
|
-
case RbConfig::CONFIG['host_os']
|
16
|
-
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
|
17
|
-
|
18
|
-
|
19
|
-
else
|
20
|
-
|
21
|
-
end
|
15
|
+
# case RbConfig::CONFIG['host_os']
|
16
|
+
# when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
|
17
|
+
# set :backend, :cmd
|
18
|
+
# set :os, :family => 'windows'
|
19
|
+
# else
|
20
|
+
# set :backend, :exec
|
21
|
+
# end
|
data/test/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen-docker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Porter
|
@@ -170,6 +170,20 @@ dependencies:
|
|
170
170
|
- - ">="
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: 0.0.2
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: chefstyle
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0'
|
180
|
+
type: :development
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
173
187
|
- !ruby/object:Gem::Dependency
|
174
188
|
name: kitchen-inspec
|
175
189
|
requirement: !ruby/object:Gem::Requirement
|
@@ -213,11 +227,11 @@ extra_rdoc_files: []
|
|
213
227
|
files:
|
214
228
|
- ".cane"
|
215
229
|
- ".github/dependabot.yml"
|
230
|
+
- ".github/workflows/ci.yml"
|
216
231
|
- ".gitignore"
|
217
|
-
- ".
|
218
|
-
- ".kitchen.yml"
|
232
|
+
- ".rubocop.yml"
|
219
233
|
- ".tailor"
|
220
|
-
- ".
|
234
|
+
- ".yamllint"
|
221
235
|
- CHANGELOG.md
|
222
236
|
- Gemfile
|
223
237
|
- LICENSE
|
@@ -225,6 +239,8 @@ files:
|
|
225
239
|
- Rakefile
|
226
240
|
- docker.ps1
|
227
241
|
- kitchen-docker.gemspec
|
242
|
+
- kitchen.windows.yml
|
243
|
+
- kitchen.yml
|
228
244
|
- lib/docker/version.rb
|
229
245
|
- lib/kitchen/docker/container.rb
|
230
246
|
- lib/kitchen/docker/container/linux.rb
|
@@ -241,9 +257,9 @@ files:
|
|
241
257
|
- lib/kitchen/transport/docker.rb
|
242
258
|
- lib/train/docker.rb
|
243
259
|
- test/Dockerfile
|
244
|
-
- test/integration/capabilities/
|
245
|
-
- test/integration/default/
|
246
|
-
- test/integration/default/
|
260
|
+
- test/integration/capabilities/disabled/capabilities_drop_spec.rb
|
261
|
+
- test/integration/default/disabled/default_spec.rb
|
262
|
+
- test/integration/default/disabled/spec_helper.rb
|
247
263
|
- test/integration/inspec/inspec_spec.rb
|
248
264
|
- test/spec/docker_spec.rb
|
249
265
|
- test/spec/spec_helper.rb
|
@@ -272,9 +288,9 @@ specification_version: 4
|
|
272
288
|
summary: A Docker Driver for Test Kitchen
|
273
289
|
test_files:
|
274
290
|
- test/Dockerfile
|
275
|
-
- test/integration/capabilities/
|
276
|
-
- test/integration/default/
|
277
|
-
- test/integration/default/
|
291
|
+
- test/integration/capabilities/disabled/capabilities_drop_spec.rb
|
292
|
+
- test/integration/default/disabled/default_spec.rb
|
293
|
+
- test/integration/default/disabled/spec_helper.rb
|
278
294
|
- test/integration/inspec/inspec_spec.rb
|
279
295
|
- test/spec/docker_spec.rb
|
280
296
|
- test/spec/spec_helper.rb
|
data/.kitchen.windows.yml
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
<% # Make sure the local copy of the driver is loaded %>
|
2
|
-
<% lib = File.expand_path('../lib', __FILE__) %>
|
3
|
-
<% $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) %>
|
4
|
-
---
|
5
|
-
driver:
|
6
|
-
name: docker
|
7
|
-
provision_command:
|
8
|
-
- powershell -ExecutionPolicy Bypass -NoLogo -Command . { iwr -useb https://omnitruck.chef.io/install.ps1 } ^| iex; install
|
9
|
-
- powershell -Command $path=$env:Path + ';c:\opscode\chef\embedded\bin'; Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' -Name Path -Value $path
|
10
|
-
|
11
|
-
transport:
|
12
|
-
name: docker
|
13
|
-
socket: tcp://localhost:2375
|
14
|
-
|
15
|
-
provisioner:
|
16
|
-
name: dummy
|
17
|
-
|
18
|
-
platforms:
|
19
|
-
- name: windows
|
20
|
-
driver_config:
|
21
|
-
image: mcr.microsoft.com/windows/servercore:1809
|
22
|
-
platform: windows
|
23
|
-
|
24
|
-
suites:
|
25
|
-
- name: default
|
26
|
-
- name: context
|
27
|
-
driver:
|
28
|
-
build_context: false
|
29
|
-
- name: inspec
|
30
|
-
driver:
|
31
|
-
provision_command: echo 1
|
32
|
-
verifier:
|
33
|
-
name: inspec
|
data/.kitchen.yml
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
<% # Make sure the local copy of the driver is loaded %>
|
2
|
-
<% lib = File.expand_path('../lib', __FILE__) %>
|
3
|
-
<% $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) %>
|
4
|
-
---
|
5
|
-
driver:
|
6
|
-
name: docker
|
7
|
-
provision_command: curl -L https://www.chef.io/chef/install.sh | bash
|
8
|
-
|
9
|
-
transport:
|
10
|
-
name: docker
|
11
|
-
|
12
|
-
provisioner:
|
13
|
-
name: dummy
|
14
|
-
|
15
|
-
platforms:
|
16
|
-
- name: amazonlinux-2
|
17
|
-
- name: ubuntu-18.04
|
18
|
-
- name: ubuntu-20.04
|
19
|
-
- name: fedora-latest
|
20
|
-
driver:
|
21
|
-
provision_command:
|
22
|
-
- yum install libxcrypt-compat -y
|
23
|
-
- curl -L https://www.chef.io/chef/install.sh | bash
|
24
|
-
- name: centos-7
|
25
|
-
- name: oraclelinux-7
|
26
|
-
- name: rockylinux-8
|
27
|
-
- name: debian-9
|
28
|
-
- name: debian-10
|
29
|
-
- name: opensuse-15
|
30
|
-
driver:
|
31
|
-
image: opensuse/leap:15
|
32
|
-
- name: dockerfile
|
33
|
-
driver:
|
34
|
-
username: dockerfile
|
35
|
-
password: dockerfile
|
36
|
-
dockerfile: test/Dockerfile
|
37
|
-
run_command: /sbin/init
|
38
|
-
|
39
|
-
suites:
|
40
|
-
- name: default
|
41
|
-
excludes: [arch, debian-9]
|
42
|
-
- name: context
|
43
|
-
excludes: [arch, debian-9]
|
44
|
-
driver:
|
45
|
-
build_context: false
|
46
|
-
- name: capabilities
|
47
|
-
includes: [debian-10,ubuntu-18.04,ubuntu-20.04]
|
48
|
-
driver:
|
49
|
-
provision_command:
|
50
|
-
- curl -L https://www.chef.io/chef/install.sh | bash
|
51
|
-
- apt-get install -y net-tools
|
52
|
-
cap_drop:
|
53
|
-
- NET_ADMIN
|
54
|
-
- name: arm64
|
55
|
-
excludes: [debian-9]
|
56
|
-
driver:
|
57
|
-
docker_platform: linux/arm64
|
58
|
-
- name: amd64
|
59
|
-
driver:
|
60
|
-
docker_platform: linux/amd64
|
61
|
-
- name: inspec
|
62
|
-
driver:
|
63
|
-
provision_command: true
|
64
|
-
verifier:
|
65
|
-
name: inspec
|
data/.travis.yml
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
matrix:
|
2
|
-
include:
|
3
|
-
- os: linux
|
4
|
-
rvm: 2.4.9
|
5
|
-
dist: xenial
|
6
|
-
language: ruby
|
7
|
-
cache: bundler
|
8
|
-
script:
|
9
|
-
- bundle exec docker version
|
10
|
-
- bundle exec kitchen --version
|
11
|
-
- bundle exec rake spec
|
12
|
-
- bundle exec kitchen test -d always
|
13
|
-
- os: linux
|
14
|
-
rvm: 2.5.7
|
15
|
-
dist: xenial
|
16
|
-
language: ruby
|
17
|
-
cache: bundler
|
18
|
-
script:
|
19
|
-
- bundle exec docker version
|
20
|
-
- bundle exec kitchen --version
|
21
|
-
- bundle exec rake spec
|
22
|
-
- bundle exec kitchen test -d always
|
23
|
-
- os: linux
|
24
|
-
rvm: 2.6.5
|
25
|
-
dist: xenial
|
26
|
-
language: ruby
|
27
|
-
cache: bundler
|
28
|
-
script:
|
29
|
-
- bundle exec docker version
|
30
|
-
- bundle exec kitchen --version
|
31
|
-
- bundle exec rake spec
|
32
|
-
- bundle exec kitchen test -d always
|
33
|
-
- os: windows
|
34
|
-
language: bash
|
35
|
-
install:
|
36
|
-
- choco uninstall ruby
|
37
|
-
- choco install ruby --version=2.6.5.1
|
38
|
-
- export PATH=$(echo "$PATH" | sed -e 's/:\/c\/tools\/ruby27\/bin//')
|
39
|
-
- export PATH=$PATH:/c/tools/ruby26/bin
|
40
|
-
- choco install mingw
|
41
|
-
- choco install msys2
|
42
|
-
- ridk.cmd exec pacman -S --noconfirm --needed base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-libxslt
|
43
|
-
script:
|
44
|
-
- if [[ $(tasklist | grep "gpg-agent") ]]; then taskkill -IM "gpg-agent.exe" -F; else echo "Process gpg-agent not found. Skipping."; fi
|
45
|
-
- powershell -ExecutionPolicy Bypass -NoLogo -File docker.ps1
|
46
|
-
- export KITCHEN_YAML=.kitchen.windows.yml
|
47
|
-
- ruby -v
|
48
|
-
- gem install bundler
|
49
|
-
- bundle config build.nokogiri --use-system-libraries
|
50
|
-
- bundle install
|
51
|
-
- bundle exec docker version
|
52
|
-
- bundle exec kitchen --version
|
53
|
-
- bundle exec rake spec
|
54
|
-
- bundle exec kitchen test -d always
|
55
|
-
|
56
|
-
services:
|
57
|
-
- docker
|