beaker-docker 1.3.0 → 1.5.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/.editorconfig +10 -0
- data/.github/dependabot.yml +9 -0
- data/.github/workflows/release.yml +1 -1
- data/.github/workflows/test.yml +58 -49
- data/.gitignore +2 -0
- data/.rubocop.yml +48 -0
- data/.rubocop_todo.yml +572 -0
- data/.simplecov +2 -0
- data/CHANGELOG.md +47 -0
- data/Gemfile +7 -5
- data/Rakefile +40 -137
- data/acceptance/tests/00_default_spec.rb +5 -4
- data/beaker-docker.gemspec +24 -18
- data/bin/beaker-docker +8 -10
- data/lib/beaker/hypervisor/docker.rb +90 -111
- data/lib/beaker-docker/version.rb +3 -1
- data/lib/beaker-docker.rb +1 -0
- data/spec/beaker/hypervisor/docker_spec.rb +48 -9
- data/spec/spec_helper.rb +6 -5
- metadata +79 -25
- data/Gemfile.local +0 -3
@@ -688,7 +688,7 @@ module Beaker
|
|
688
688
|
'platform' => platform,
|
689
689
|
'image' => 'foobar',
|
690
690
|
})
|
691
|
-
expect( dockerfile ).to
|
691
|
+
expect( dockerfile ).to match(/ENV container docker/)
|
692
692
|
end
|
693
693
|
end
|
694
694
|
|
@@ -705,7 +705,7 @@ module Beaker
|
|
705
705
|
]
|
706
706
|
})
|
707
707
|
|
708
|
-
expect( dockerfile ).to
|
708
|
+
expect( dockerfile ).to match(/RUN special one\nRUN special two\nRUN special three/)
|
709
709
|
end
|
710
710
|
end
|
711
711
|
|
@@ -722,7 +722,7 @@ module Beaker
|
|
722
722
|
]
|
723
723
|
})
|
724
724
|
|
725
|
-
expect( dockerfile ).to
|
725
|
+
expect( dockerfile ).to match(/RUN special one\nRUN special two\nRUN special three/)
|
726
726
|
end
|
727
727
|
end
|
728
728
|
|
@@ -735,7 +735,7 @@ module Beaker
|
|
735
735
|
'docker_image_entrypoint' => '/bin/bash'
|
736
736
|
})
|
737
737
|
|
738
|
-
expect( dockerfile ).to
|
738
|
+
expect( dockerfile ).to match(%r{ENTRYPOINT /bin/bash})
|
739
739
|
end
|
740
740
|
end
|
741
741
|
|
@@ -746,7 +746,7 @@ module Beaker
|
|
746
746
|
'image' => 'foobar',
|
747
747
|
})
|
748
748
|
|
749
|
-
expect( dockerfile ).to
|
749
|
+
expect( dockerfile ).to match(/zypper -n in openssh/)
|
750
750
|
end
|
751
751
|
|
752
752
|
(22..39).to_a.each do | fedora_release |
|
@@ -757,7 +757,7 @@ module Beaker
|
|
757
757
|
'image' => 'foobar',
|
758
758
|
})
|
759
759
|
|
760
|
-
expect( dockerfile ).to
|
760
|
+
expect( dockerfile ).to match(/dnf install -y sudo/)
|
761
761
|
end
|
762
762
|
end
|
763
763
|
|
@@ -768,9 +768,48 @@ module Beaker
|
|
768
768
|
'image' => 'foobar',
|
769
769
|
})
|
770
770
|
|
771
|
-
expect( dockerfile ).to match(/
|
772
|
-
expect( dockerfile ).to match(/
|
773
|
-
expect( dockerfile ).to match(/
|
771
|
+
expect( dockerfile ).to match(/pacman --sync --refresh --noconfirm archlinux-keyring/)
|
772
|
+
expect( dockerfile ).to match(/pacman --sync --refresh --noconfirm --sysupgrade/)
|
773
|
+
expect( dockerfile ).to match(/pacman --sync --noconfirm curl ntp net-tools openssh/)
|
774
|
+
end
|
775
|
+
end
|
776
|
+
|
777
|
+
describe '#fix_ssh' do
|
778
|
+
let(:test_container) { double('container') }
|
779
|
+
let(:host) { hosts[0] }
|
780
|
+
before :each do
|
781
|
+
expect(test_container).to receive(:id).and_return('abcdef')
|
782
|
+
end
|
783
|
+
|
784
|
+
it 'should call exec once when called without host' do
|
785
|
+
expect(test_container).to receive(:exec).once.with(
|
786
|
+
include(/PermitRootLogin/) &&
|
787
|
+
include(/PasswordAuthentication/) &&
|
788
|
+
include(/UseDNS/) &&
|
789
|
+
include(/MaxAuthTries/)
|
790
|
+
)
|
791
|
+
docker.send(:fix_ssh, test_container)
|
792
|
+
end
|
793
|
+
|
794
|
+
it 'should exec sshd on alpine' do
|
795
|
+
host['platform'] = 'alpine-3.8-x86_64'
|
796
|
+
expect(test_container).to receive(:exec).with(array_including('sed'))
|
797
|
+
expect(test_container).to receive(:exec).with(%w[/usr/sbin/sshd])
|
798
|
+
docker.send(:fix_ssh, test_container, host)
|
799
|
+
end
|
800
|
+
|
801
|
+
it 'should restart ssh service on ubuntu' do
|
802
|
+
host['platform'] = 'ubuntu-20.04-x86_64'
|
803
|
+
expect(test_container).to receive(:exec).with(array_including('sed'))
|
804
|
+
expect(test_container).to receive(:exec).with(%w[service ssh restart])
|
805
|
+
docker.send(:fix_ssh, test_container, host)
|
806
|
+
end
|
807
|
+
|
808
|
+
it 'should restart sshd service otherwise' do
|
809
|
+
host['platform'] = 'boogeyman-2000-x86_64'
|
810
|
+
expect(test_container).to receive(:exec).with(array_including('sed'))
|
811
|
+
expect(test_container).to receive(:exec).with(%w[service sshd restart])
|
812
|
+
docker.send(:fix_ssh, test_container, host)
|
774
813
|
end
|
775
814
|
end
|
776
815
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'beaker'
|
3
4
|
|
4
5
|
begin
|
@@ -6,17 +7,17 @@ begin
|
|
6
7
|
require 'simplecov-console'
|
7
8
|
require 'codecov'
|
8
9
|
rescue LoadError
|
10
|
+
# Do nothing if no required gem installed
|
9
11
|
else
|
10
12
|
SimpleCov.start do
|
11
13
|
track_files 'lib/**/*.rb'
|
12
14
|
|
13
15
|
add_filter '/spec'
|
14
|
-
|
15
|
-
enable_coverage :branch
|
16
|
-
|
17
16
|
# do not track vendored files
|
18
17
|
add_filter '/vendor'
|
19
18
|
add_filter '/.vendor'
|
19
|
+
|
20
|
+
enable_coverage :branch
|
20
21
|
end
|
21
22
|
|
22
23
|
SimpleCov.formatters = [
|
@@ -25,7 +26,7 @@ else
|
|
25
26
|
]
|
26
27
|
end
|
27
28
|
|
28
|
-
Dir
|
29
|
+
Dir['./lib/beaker/hypervisor/*.rb'].sort.each { |file| require file }
|
29
30
|
|
30
31
|
# setup & require beaker's spec_helper.rb
|
31
32
|
beaker_gem_spec = Gem::Specification.find_by_name('beaker')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaker-docker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vox Pupuli
|
@@ -11,8 +11,42 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2023-03-24 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: fakefs
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '1.3'
|
23
|
+
- - "<"
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: '3.0'
|
26
|
+
type: :development
|
27
|
+
prerelease: false
|
28
|
+
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.3'
|
33
|
+
- - "<"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '3.0'
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '13.0'
|
43
|
+
type: :development
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '13.0'
|
16
50
|
- !ruby/object:Gem::Dependency
|
17
51
|
name: rspec
|
18
52
|
requirement: !ruby/object:Gem::Requirement
|
@@ -28,61 +62,75 @@ dependencies:
|
|
28
62
|
- !ruby/object:Gem::Version
|
29
63
|
version: '3.0'
|
30
64
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
65
|
+
name: rubocop
|
32
66
|
requirement: !ruby/object:Gem::Requirement
|
33
67
|
requirements:
|
34
68
|
- - "~>"
|
35
69
|
- !ruby/object:Gem::Version
|
36
|
-
version:
|
70
|
+
version: 1.12.0
|
37
71
|
type: :development
|
38
72
|
prerelease: false
|
39
73
|
version_requirements: !ruby/object:Gem::Requirement
|
40
74
|
requirements:
|
41
75
|
- - "~>"
|
42
76
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
77
|
+
version: 1.12.0
|
44
78
|
- !ruby/object:Gem::Dependency
|
45
|
-
name:
|
79
|
+
name: rubocop-performance
|
46
80
|
requirement: !ruby/object:Gem::Requirement
|
47
81
|
requirements:
|
48
82
|
- - "~>"
|
49
83
|
- !ruby/object:Gem::Version
|
50
|
-
version: '1.
|
84
|
+
version: '1.10'
|
51
85
|
type: :development
|
52
86
|
prerelease: false
|
53
87
|
version_requirements: !ruby/object:Gem::Requirement
|
54
88
|
requirements:
|
55
89
|
- - "~>"
|
56
90
|
- !ruby/object:Gem::Version
|
57
|
-
version: '1.
|
91
|
+
version: '1.10'
|
58
92
|
- !ruby/object:Gem::Dependency
|
59
|
-
name: rake
|
93
|
+
name: rubocop-rake
|
60
94
|
requirement: !ruby/object:Gem::Requirement
|
61
95
|
requirements:
|
62
96
|
- - "~>"
|
63
97
|
- !ruby/object:Gem::Version
|
64
|
-
version: '
|
98
|
+
version: '0.2'
|
65
99
|
type: :development
|
66
100
|
prerelease: false
|
67
101
|
version_requirements: !ruby/object:Gem::Requirement
|
68
102
|
requirements:
|
69
103
|
- - "~>"
|
70
104
|
- !ruby/object:Gem::Version
|
71
|
-
version: '
|
105
|
+
version: '0.2'
|
72
106
|
- !ruby/object:Gem::Dependency
|
73
|
-
name:
|
107
|
+
name: rubocop-rspec
|
74
108
|
requirement: !ruby/object:Gem::Requirement
|
75
109
|
requirements:
|
76
|
-
- - "
|
110
|
+
- - ">="
|
77
111
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
112
|
+
version: '1.44'
|
113
|
+
type: :development
|
114
|
+
prerelease: false
|
115
|
+
version_requirements: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '1.44'
|
120
|
+
- !ruby/object:Gem::Dependency
|
121
|
+
name: beaker
|
122
|
+
requirement: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '4.34'
|
79
127
|
type: :runtime
|
80
128
|
prerelease: false
|
81
129
|
version_requirements: !ruby/object:Gem::Requirement
|
82
130
|
requirements:
|
83
|
-
- - "
|
131
|
+
- - ">="
|
84
132
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
133
|
+
version: '4.34'
|
86
134
|
- !ruby/object:Gem::Dependency
|
87
135
|
name: docker-api
|
88
136
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,20 +146,20 @@ dependencies:
|
|
98
146
|
- !ruby/object:Gem::Version
|
99
147
|
version: '2.1'
|
100
148
|
- !ruby/object:Gem::Dependency
|
101
|
-
name:
|
149
|
+
name: stringify-hash
|
102
150
|
requirement: !ruby/object:Gem::Requirement
|
103
151
|
requirements:
|
104
|
-
- - "
|
152
|
+
- - "~>"
|
105
153
|
- !ruby/object:Gem::Version
|
106
|
-
version:
|
154
|
+
version: 0.0.0
|
107
155
|
type: :runtime
|
108
156
|
prerelease: false
|
109
157
|
version_requirements: !ruby/object:Gem::Requirement
|
110
158
|
requirements:
|
111
|
-
- - "
|
159
|
+
- - "~>"
|
112
160
|
- !ruby/object:Gem::Version
|
113
|
-
version:
|
114
|
-
description:
|
161
|
+
version: 0.0.0
|
162
|
+
description: Allows running Beaker tests using Docker
|
115
163
|
email:
|
116
164
|
- voxpupuli@groups.io
|
117
165
|
executables:
|
@@ -119,14 +167,16 @@ executables:
|
|
119
167
|
extensions: []
|
120
168
|
extra_rdoc_files: []
|
121
169
|
files:
|
170
|
+
- ".editorconfig"
|
122
171
|
- ".github/dependabot.yml"
|
123
172
|
- ".github/workflows/release.yml"
|
124
173
|
- ".github/workflows/test.yml"
|
125
174
|
- ".gitignore"
|
175
|
+
- ".rubocop.yml"
|
176
|
+
- ".rubocop_todo.yml"
|
126
177
|
- ".simplecov"
|
127
178
|
- CHANGELOG.md
|
128
179
|
- Gemfile
|
129
|
-
- Gemfile.local
|
130
180
|
- LICENSE
|
131
181
|
- README.md
|
132
182
|
- Rakefile
|
@@ -135,6 +185,7 @@ files:
|
|
135
185
|
- beaker-docker.gemspec
|
136
186
|
- bin/beaker-docker
|
137
187
|
- docker.md
|
188
|
+
- lib/beaker-docker.rb
|
138
189
|
- lib/beaker-docker/version.rb
|
139
190
|
- lib/beaker/hypervisor/docker.rb
|
140
191
|
- spec/beaker/hypervisor/docker_spec.rb
|
@@ -151,7 +202,10 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
151
202
|
requirements:
|
152
203
|
- - ">="
|
153
204
|
- !ruby/object:Gem::Version
|
154
|
-
version: '
|
205
|
+
version: '2.4'
|
206
|
+
- - "<"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '4'
|
155
209
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
156
210
|
requirements:
|
157
211
|
- - ">="
|
@@ -161,5 +215,5 @@ requirements: []
|
|
161
215
|
rubygems_version: 3.2.33
|
162
216
|
signing_key:
|
163
217
|
specification_version: 4
|
164
|
-
summary: Beaker
|
218
|
+
summary: Docker hypervisor for Beaker acceptance testing framework
|
165
219
|
test_files: []
|
data/Gemfile.local
DELETED