beaker-docker 1.4.0 → 2.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.
data/.simplecov CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  SimpleCov.configure do
2
4
  add_filter 'spec/'
3
5
  add_filter 'vendor/'
data/CHANGELOG.md CHANGED
@@ -1,6 +1,56 @@
1
1
  # Changelog
2
2
 
3
- ## [1.4.0](https://github.com/voxpupuli/beaker-docker/tree/1.4.0) (2023-03-09)
3
+ ## [2.0.0](https://github.com/voxpupuli/beaker-docker/tree/2.0.0) (2023-03-28)
4
+
5
+ [Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/1.5.0...2.0.0)
6
+
7
+ **Breaking changes:**
8
+
9
+ - Drop Ruby 2.4/2.5/2.6 support [\#109](https://github.com/voxpupuli/beaker-docker/pull/109) ([bastelfreak](https://github.com/bastelfreak))
10
+
11
+ **Implemented enhancements:**
12
+
13
+ - Drop `beaker-rspec` dependency [\#107](https://github.com/voxpupuli/beaker-docker/pull/107) ([jay7x](https://github.com/jay7x))
14
+
15
+ **Merged pull requests:**
16
+
17
+ - Rubocop: fix more violations [\#113](https://github.com/voxpupuli/beaker-docker/pull/113) ([bastelfreak](https://github.com/bastelfreak))
18
+ - rubocop: Use shared config from beaker [\#112](https://github.com/voxpupuli/beaker-docker/pull/112) ([bastelfreak](https://github.com/bastelfreak))
19
+ - Fix even more rubocop issues [\#111](https://github.com/voxpupuli/beaker-docker/pull/111) ([jay7x](https://github.com/jay7x))
20
+ - More rubocop fixes [\#110](https://github.com/voxpupuli/beaker-docker/pull/110) ([jay7x](https://github.com/jay7x))
21
+ - Fix more rubocop warnings [\#108](https://github.com/voxpupuli/beaker-docker/pull/108) ([jay7x](https://github.com/jay7x))
22
+ - Fix multiple Rubocop warnings [\#106](https://github.com/voxpupuli/beaker-docker/pull/106) ([bastelfreak](https://github.com/bastelfreak))
23
+
24
+ ## [1.5.0](https://github.com/voxpupuli/beaker-docker/tree/1.5.0) (2023-03-24)
25
+
26
+ [Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/1.4.0...1.5.0)
27
+
28
+ **Implemented enhancements:**
29
+
30
+ - Ruby 3.2 compatibility [\#100](https://github.com/voxpupuli/beaker-docker/pull/100) ([ekohl](https://github.com/ekohl))
31
+ - Set required Ruby version to 2.4+ [\#99](https://github.com/voxpupuli/beaker-docker/pull/99) ([ekohl](https://github.com/ekohl))
32
+ - Simplify port detection code [\#95](https://github.com/voxpupuli/beaker-docker/pull/95) ([ekohl](https://github.com/ekohl))
33
+ - Add Ruby 3.1 to CI matrix [\#87](https://github.com/voxpupuli/beaker-docker/pull/87) ([bastelfreak](https://github.com/bastelfreak))
34
+ - Use ssh-keygen -A on Red Hat-based distros & SuSE/SLES [\#73](https://github.com/voxpupuli/beaker-docker/pull/73) ([ekohl](https://github.com/ekohl))
35
+
36
+ **Fixed bugs:**
37
+
38
+ - Deal with docker\_cmd being an array and remove use of =~ [\#93](https://github.com/voxpupuli/beaker-docker/pull/93) ([ekohl](https://github.com/ekohl))
39
+
40
+ **Merged pull requests:**
41
+
42
+ - Remove Gemfile.local from git [\#104](https://github.com/voxpupuli/beaker-docker/pull/104) ([ekohl](https://github.com/ekohl))
43
+ - Fix rubocop Naming/FileName [\#103](https://github.com/voxpupuli/beaker-docker/pull/103) ([jay7x](https://github.com/jay7x))
44
+ - cleanup GitHub actions [\#102](https://github.com/voxpupuli/beaker-docker/pull/102) ([bastelfreak](https://github.com/bastelfreak))
45
+ - Remove unused rspec-its dependency [\#98](https://github.com/voxpupuli/beaker-docker/pull/98) ([ekohl](https://github.com/ekohl))
46
+ - Allow fakefs 2.x [\#97](https://github.com/voxpupuli/beaker-docker/pull/97) ([ekohl](https://github.com/ekohl))
47
+ - Remove yard rake tasks [\#96](https://github.com/voxpupuli/beaker-docker/pull/96) ([ekohl](https://github.com/ekohl))
48
+ - rubocop: fix dependency ordering [\#94](https://github.com/voxpupuli/beaker-docker/pull/94) ([bastelfreak](https://github.com/bastelfreak))
49
+ - GHA: Use builtin podman [\#86](https://github.com/voxpupuli/beaker-docker/pull/86) ([bastelfreak](https://github.com/bastelfreak))
50
+ - GHA: Use builtin docker [\#85](https://github.com/voxpupuli/beaker-docker/pull/85) ([bastelfreak](https://github.com/bastelfreak))
51
+ - Fix rubocop-related issues \(part 1\) [\#75](https://github.com/voxpupuli/beaker-docker/pull/75) ([jay7x](https://github.com/jay7x))
52
+
53
+ ## [1.4.0](https://github.com/voxpupuli/beaker-docker/tree/1.4.0) (2023-03-10)
4
54
 
5
55
  [Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/1.3.0...1.4.0)
6
56
 
data/Gemfile CHANGED
@@ -1,14 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source ENV['GEM_SOURCE'] || 'https://rubygems.org'
2
4
 
3
5
  gemspec
4
6
 
5
- if File.exists? "#{__FILE__}.local"
6
- eval(File.read("#{__FILE__}.local"), binding)
7
- end
8
-
9
7
  group :coverage, optional: ENV['COVERAGE'] != 'yes' do
10
- gem 'simplecov-console', require: false
11
8
  gem 'codecov', require: false
9
+ gem 'simplecov-console', require: false
12
10
  end
13
11
 
14
12
  group :release do
data/Rakefile CHANGED
@@ -1,24 +1,29 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec/core/rake_task'
2
4
 
3
- namespace :lint do
5
+ begin
4
6
  require 'rubocop/rake_task'
7
+ rescue LoadError
8
+ # RuboCop is an optional group
9
+ else
5
10
  RuboCop::RakeTask.new(:rubocop) do |task|
6
- # Use Rubocop's Github Actions formatter
7
- if ENV['GITHUB_ACTIONS'] == 'true'
8
- task.formatters << 'github'
9
- end
11
+ # These make the rubocop experience maybe slightly less terrible
12
+ task.options = ['--display-cop-names', '--display-style-guide', '--extra-details']
13
+ # Use Rubocop's Github Actions formatter if possible
14
+ task.formatters << 'github' if ENV['GITHUB_ACTIONS'] == 'true'
10
15
  end
11
16
  end
12
17
 
13
18
  namespace :test do
14
19
  namespace :spec do
15
- desc "Run spec tests"
20
+ desc 'Run spec tests'
16
21
  RSpec::Core::RakeTask.new(:run) do |t|
17
22
  t.rspec_opts = ['--color', '--format documentation']
18
23
  t.pattern = 'spec/'
19
24
  end
20
25
 
21
- desc "Run spec tests with coverage"
26
+ desc 'Run spec tests with coverage'
22
27
  RSpec::Core::RakeTask.new(:coverage) do |t|
23
28
  ENV['BEAKER_DOCKER_COVERAGE'] = 'y'
24
29
  t.rspec_opts = ['--color', '--format documentation']
@@ -27,26 +32,25 @@ namespace :test do
27
32
  end
28
33
 
29
34
  namespace :acceptance do
30
- desc <<-EOS
31
- A quick acceptance test, named because it has no pre-suites to run
32
- EOS
35
+ desc 'A quick acceptance test, named because it has no pre-suites to run'
33
36
  task :quick do
34
-
35
- # setup & load_path of beaker's acceptance base and lib directory
36
- beaker_gem_spec = Gem::Specification.find_by_name('beaker')
37
- beaker_gem_dir = beaker_gem_spec.gem_dir
38
- beaker_test_base_dir = File.join(beaker_gem_dir, 'acceptance/tests/base')
39
- load_path_option = File.join(beaker_gem_dir, 'acceptance/lib')
40
-
41
- ENV['BEAKER_setfile'] = 'acceptance/config/nodes/hosts.yaml' unless ENV.key?('BEAKER_setfile')
42
- sh("beaker",
43
- # We can't run these tests until the rsync support in the main
44
- # beaker/host.rb is updated to work with passwords.
45
- # "--tests", beaker_test_base_dir,
46
- # "--load-path", load_path_option,
47
- "--tests", 'acceptance/tests/',
48
- "--log-level", "debug",
49
- "--debug")
37
+ ## setup & load_path of beaker's acceptance base and lib directory
38
+ ## see below for the reason why it's commented out atm
39
+ # beaker_gem_spec = Gem::Specification.find_by_name('beaker')
40
+ # beaker_gem_dir = beaker_gem_spec.gem_dir
41
+ # beaker_test_base_dir = File.join(beaker_gem_dir, 'acceptance/tests/base')
42
+ # load_path_option = File.join(beaker_gem_dir, 'acceptance/lib')
43
+
44
+ ENV['BEAKER_setfile'] = 'acceptance/config/nodes/hosts.yaml'
45
+ sh('beaker',
46
+ '--hosts', 'acceptance/config/nodes/hosts.yaml',
47
+ ## We can't run these tests until the rsync support in the main
48
+ ## beaker/host.rb is updated to work with passwords.
49
+ # '--tests', beaker_test_base_dir,
50
+ # '--load-path', load_path_option,
51
+ '--tests', 'acceptance/tests/',
52
+ '--log-level', 'debug',
53
+ '--debug')
50
54
  end
51
55
  end
52
56
  end
@@ -54,126 +58,22 @@ end
54
58
  # namespace-named default tasks.
55
59
  # these are the default tasks invoked when only the namespace is referenced.
56
60
  # they're needed because `task :default` in those blocks doesn't work as expected.
57
- task 'test:spec' => 'test:spec:run'
58
- task 'test:acceptance' => 'test:acceptance:quick'
61
+ task 'test:spec': %i[test:spec:run]
62
+ task 'test:acceptance': %i[test:acceptance:quick]
59
63
 
60
64
  # global defaults
61
- task :lint => %i[lint:rubocop]
62
- task :test => 'test:spec'
63
- task :default => :test
64
-
65
- ###########################################################
66
- #
67
- # Documentation Tasks
68
- #
69
- ###########################################################
70
- DOCS_DAEMON = "yard server --reload --daemon --server thin"
71
- FOREGROUND_SERVER = 'bundle exec yard server --reload --verbose --server thin lib/beaker'
72
-
73
- def running?( cmdline )
74
- ps = `ps -ef`
75
- found = ps.lines.grep( /#{Regexp.quote( cmdline )}/ )
76
- if found.length > 1
77
- raise StandardError, "Found multiple YARD Servers. Don't know what to do."
78
- end
79
-
80
- yes = found.empty? ? false : true
81
- return yes, found.first
82
- end
83
-
84
- def pid_from( output )
85
- output.squeeze(' ').strip.split(' ')[1]
86
- end
87
-
88
- desc 'Start the documentation server in the foreground'
89
- task :docs => 'docs:clear' do
90
- original_dir = Dir.pwd
91
- Dir.chdir( File.expand_path(File.dirname(__FILE__)) )
92
- sh FOREGROUND_SERVER
93
- Dir.chdir( original_dir )
94
- end
95
-
96
- namespace :docs do
97
- desc 'Clear the generated documentation cache'
98
- task :clear do
99
- original_dir = Dir.pwd
100
- Dir.chdir( File.expand_path(File.dirname(__FILE__)) )
101
- sh 'rm -rf docs'
102
- Dir.chdir( original_dir )
103
- end
104
-
105
- desc 'Generate static documentation'
106
- task :gen => 'docs:clear' do
107
- original_dir = Dir.pwd
108
- Dir.chdir( File.expand_path(File.dirname(__FILE__)) )
109
- output = `bundle exec yard doc`
110
- puts output
111
- if output =~ /\[warn\]|\[error\]/
112
- fail "Errors/Warnings during yard documentation generation"
113
- end
114
- Dir.chdir( original_dir )
115
- end
116
-
117
- desc 'Run the documentation server in the background, alias `bg`'
118
- task :background => 'docs:clear' do
119
- yes, output = running?( DOCS_DAEMON )
120
- if yes
121
- puts "Not starting a new YARD Server..."
122
- puts "Found one running with pid #{pid_from( output )}."
123
- else
124
- original_dir = Dir.pwd
125
- Dir.chdir( File.expand_path(File.dirname(__FILE__)) )
126
- sh "bundle exec #{DOCS_DAEMON}"
127
- Dir.chdir( original_dir )
128
- end
129
- end
130
-
131
- task(:bg) { Rake::Task['docs:background'].invoke }
132
-
133
- desc 'Check the status of the documentation server'
134
- task :status do
135
- yes, output = running?( DOCS_DAEMON )
136
- if yes
137
- pid = pid_from( output )
138
- puts "Found a YARD Server running with pid #{pid}"
139
- else
140
- puts "Could not find a running YARD Server."
141
- end
142
- end
143
-
144
- desc "Stop a running YARD Server"
145
- task :stop do
146
- yes, output = running?( DOCS_DAEMON )
147
- if yes
148
- pid = pid_from( output )
149
- puts "Found a YARD Server running with pid #{pid}"
150
- `kill #{pid}`
151
- puts "Stopping..."
152
- yes, output = running?( DOCS_DAEMON )
153
- if yes
154
- `kill -9 #{pid}`
155
- yes, output = running?( DOCS_DAEMON )
156
- if yes
157
- puts "Could not Stop Server!"
158
- else
159
- puts "Server stopped."
160
- end
161
- else
162
- puts "Server stopped."
163
- end
164
- else
165
- puts "Could not find a running YARD Server"
166
- end
167
- end
168
- end
65
+ task lint: %i[lint:rubocop]
66
+ task test: %i[test:spec]
67
+ task default: %i[test]
169
68
 
170
69
  begin
171
70
  require 'rubygems'
172
71
  require 'github_changelog_generator/task'
173
72
  rescue LoadError
73
+ # Do nothing if no required gem installed
174
74
  else
175
75
  GitHubChangelogGenerator::RakeTask.new :changelog do |config|
176
- config.exclude_labels = %w{duplicate question invalid wontfix wont-fix skip-changelog}
76
+ config.exclude_labels = %w[duplicate question invalid wontfix wont-fix skip-changelog]
177
77
  config.user = 'voxpupuli'
178
78
  config.project = 'beaker-docker'
179
79
  gem_version = Gem::Specification.load("#{config.project}.gemspec").version
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'beaker'
2
- require 'beaker-rspec'
3
4
 
4
- RSpec.describe 'it can connect' do
5
+ test_name 'Ensure docker container is accessible' do
5
6
  hosts.each do |host|
6
- context "on #{host}" do
7
- on(host, 'ls /tmp')
7
+ step "on #{host}" do
8
+ on(host, 'true')
8
9
  end
9
10
  end
10
11
  end
@@ -1,39 +1,40 @@
1
- # -*- encoding: utf-8 -*-
2
- $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift File.expand_path('lib', __dir__)
3
4
  require 'beaker-docker/version'
4
5
 
5
6
  Gem::Specification.new do |s|
6
- s.name = "beaker-docker"
7
+ s.name = 'beaker-docker'
7
8
  s.version = BeakerDocker::VERSION
8
9
  s.authors = [
9
- "Vox Pupuli",
10
- "Rishi Javia",
11
- "Kevin Imber",
12
- "Tony Vu"
10
+ 'Vox Pupuli',
11
+ 'Rishi Javia',
12
+ 'Kevin Imber',
13
+ 'Tony Vu',
13
14
  ]
14
- s.email = ["voxpupuli@groups.io"]
15
- s.homepage = "https://github.com/voxpupuli/beaker-docker"
16
- s.summary = %q{Beaker DSL Extension Helpers!}
17
- s.description = %q{For use for the Beaker acceptance testing tool}
15
+ s.email = ['voxpupuli@groups.io']
16
+ s.homepage = 'https://github.com/voxpupuli/beaker-docker'
17
+ s.summary = 'Docker hypervisor for Beaker acceptance testing framework'
18
+ s.description = 'Allows running Beaker tests using Docker'
18
19
  s.license = 'Apache-2.0'
19
20
 
20
21
  s.files = `git ls-files`.split("\n")
21
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
22
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
23
- s.require_paths = ["lib"]
22
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
23
+ s.require_paths = ['lib']
24
+
25
+ s.required_ruby_version = '>= 2.7', '< 4'
24
26
 
25
27
  # Testing dependencies
26
- s.add_development_dependency 'rspec', '~> 3.0'
27
- s.add_development_dependency 'rspec-its', '~> 1.3'
28
- s.add_development_dependency 'fakefs', '~> 1.3'
28
+ s.add_development_dependency 'fakefs', '>= 1.3', '< 3.0'
29
29
  s.add_development_dependency 'rake', '~> 13.0'
30
- s.add_development_dependency 'rubocop', '~> 1.12.0'
30
+ s.add_development_dependency 'rspec', '~> 3.0'
31
+ s.add_development_dependency 'rubocop', '~> 1.48.1'
31
32
  s.add_development_dependency 'rubocop-performance', '~> 1.10'
32
33
  s.add_development_dependency 'rubocop-rake', '~> 0.2'
33
34
  s.add_development_dependency 'rubocop-rspec', '>= 1.44'
34
35
 
35
36
  # Run time dependencies
36
- s.add_runtime_dependency 'stringify-hash', '~> 0.0.0'
37
+ s.add_runtime_dependency 'beaker', '~> 5.0'
37
38
  s.add_runtime_dependency 'docker-api', '~> 2.1'
38
- s.add_runtime_dependency 'beaker', '>= 4.34'
39
+ s.add_runtime_dependency 'stringify-hash', '~> 0.0.0'
39
40
  end
data/bin/beaker-docker CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'rubygems' unless defined?(Gem)
4
5
  require 'beaker-docker'
5
6
 
6
- VERSION_STRING =
7
- "
7
+ VERSION_STRING = <<'VER'
8
8
  _ .--.
9
9
  ( ` )
10
10
  beaker-docker .-' `--,
@@ -14,19 +14,17 @@ VERSION_STRING =
14
14
  ;| _| _| _| '-'__,--'`--'
15
15
  | _| _| _| _| |
16
16
  _ || _| _| _| _| %s
17
- _( `--.\\_| _| _| _|/
17
+ _( `--.\_| _| _| _|/
18
18
  .-' )--,| _| _|.`
19
19
  (__, (_ ) )_| _| /
20
- `-.__.\\ _,--'\\|__|__/
20
+ `-.__.\ _,--'\|__|__/
21
21
  ;____;
22
- \\YT/
22
+ \YT/
23
23
  ||
24
- |\"\"|
24
+ |""|
25
25
  '=='
26
- "
26
+ VER
27
27
 
28
-
29
-
30
- puts BeakerDocker::VERSION
28
+ puts VERSION_STRING % BeakerDocker::VERSION
31
29
 
32
30
  exit 0