busser 0.8.0 → 0.9.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 +4 -4
- data/.github/workflows/ci.yml +32 -0
- data/.github/workflows/pr-title.yml +28 -0
- data/.github/workflows/publish.yml +45 -0
- data/.gitignore +0 -1
- data/.markdownlint.yaml +6 -0
- data/.release-please-manifest.json +3 -0
- data/.rubocop.yml +9 -0
- data/.yamllint +6 -0
- data/CHANGELOG.md +43 -0
- data/CONTRIBUTING.md +103 -0
- data/Gemfile +10 -6
- data/README.md +77 -19
- data/Rakefile +6 -23
- data/bin/busser +2 -4
- data/busser.gemspec +12 -15
- data/features/deserialize_command.feature +4 -1
- data/features/plugin_create_command.feature +7 -9
- data/features/plugin_install_command.feature +1 -1
- data/features/support/env.rb +4 -16
- data/lib/busser/cli.rb +6 -7
- data/lib/busser/command/deserialize.rb +16 -11
- data/lib/busser/command/plugin.rb +4 -5
- data/lib/busser/command/plugin_create.rb +40 -27
- data/lib/busser/command/plugin_install.rb +15 -16
- data/lib/busser/command/plugin_list.rb +3 -4
- data/lib/busser/command/setup.rb +34 -21
- data/lib/busser/command/suite.rb +3 -4
- data/lib/busser/command/suite_cleanup.rb +3 -3
- data/lib/busser/command/suite_path.rb +2 -3
- data/lib/busser/command/test.rb +4 -4
- data/lib/busser/cucumber/hooks.rb +1 -9
- data/lib/busser/cucumber.rb +69 -49
- data/lib/busser/helpers.rb +4 -5
- data/lib/busser/plugin.rb +12 -6
- data/lib/busser/rubygems.rb +25 -11
- data/lib/busser/runner_plugin/dummy.rb +2 -3
- data/lib/busser/runner_plugin.rb +1 -2
- data/lib/busser/thor.rb +3 -4
- data/lib/busser/ui.rb +23 -5
- data/lib/busser/version.rb +1 -2
- data/lib/busser.rb +3 -4
- data/release-please-config.json +13 -0
- data/renovate.json +8 -0
- data/spec/busser/command/deserialize_spec.rb +110 -0
- data/spec/busser/command/plugin_create_spec.rb +175 -0
- data/spec/busser/command/setup_spec.rb +121 -0
- data/spec/busser/helpers_spec.rb +10 -10
- data/spec/busser/plugin_spec.rb +133 -0
- data/spec/busser/ui_spec.rb +84 -32
- data/spec/spec_helper.rb +1 -7
- data/templates/plugin/Rakefile.erb +4 -24
- data/templates/plugin/features_env.rb.erb +4 -4
- data/templates/plugin/gemspec.erb +7 -8
- data/templates/plugin/github_workflow.yml.erb +26 -0
- metadata +29 -88
- data/.cane +0 -0
- data/.simplecov +0 -10
- data/.travis.yml +0 -52
- data/Guardfile +0 -18
- data/appveyor.yml +0 -36
- data/templates/plugin/tailor.erb +0 -4
- data/templates/plugin/travis.yml.erb +0 -11
data/spec/busser/ui_spec.rb
CHANGED
|
@@ -42,13 +42,19 @@ class SneakyUI
|
|
|
42
42
|
end
|
|
43
43
|
end
|
|
44
44
|
|
|
45
|
-
# Stub that
|
|
45
|
+
# Stub that mimics a Process::Status object
|
|
46
46
|
class FakeStatus
|
|
47
47
|
|
|
48
|
-
attr_reader :exitstatus
|
|
48
|
+
attr_reader :exitstatus, :termsig
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
# A process stopped by a signal reports success? as nil rather than false,
|
|
51
|
+
# carries no exitstatus, and sets termsig instead.
|
|
52
|
+
def self.signalled(termsig)
|
|
53
|
+
new(nil, nil, termsig)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def initialize(success = true, exitstatus = 0, termsig = nil)
|
|
57
|
+
@success, @exitstatus, @termsig = success, exitstatus, termsig
|
|
52
58
|
end
|
|
53
59
|
|
|
54
60
|
def success?
|
|
@@ -65,35 +71,35 @@ describe Busser::UI do
|
|
|
65
71
|
end
|
|
66
72
|
|
|
67
73
|
it "#banner should display a formatted message" do
|
|
68
|
-
ui.invoke_banner("coffee").must_equal "-----> coffee"
|
|
74
|
+
_(ui.invoke_banner("coffee")).must_equal "-----> coffee"
|
|
69
75
|
end
|
|
70
76
|
|
|
71
77
|
it "#info should display a formatted message" do
|
|
72
|
-
ui.invoke_info("beans").must_equal " beans"
|
|
78
|
+
_(ui.invoke_info("beans")).must_equal " beans"
|
|
73
79
|
end
|
|
74
80
|
|
|
75
81
|
it "#warn should display a formatted message" do
|
|
76
|
-
ui.invoke_warn("grinder").must_equal ">>>>>> grinder"
|
|
82
|
+
_(ui.invoke_warn("grinder")).must_equal ">>>>>> grinder"
|
|
77
83
|
end
|
|
78
84
|
|
|
79
85
|
it "#fatal should display a formatted message on stderr" do
|
|
80
|
-
capture_stderr { ui.invoke_fatal("grinder") }.must_equal "!!!!!! grinder\n"
|
|
86
|
+
_(capture_stderr { ui.invoke_fatal("grinder") }).must_equal "!!!!!! grinder\n"
|
|
81
87
|
end
|
|
82
88
|
|
|
83
89
|
describe "#die" do
|
|
84
90
|
it "prints a message to stderr" do
|
|
85
|
-
capture_stderr { ui.invoke_die("noes") }.must_equal "!!!!!! noes\n"
|
|
91
|
+
_(capture_stderr { ui.invoke_die("noes") }).must_equal "!!!!!! noes\n"
|
|
86
92
|
end
|
|
87
93
|
|
|
88
94
|
it "calls exit with 1 by default" do
|
|
89
95
|
capture_stderr do
|
|
90
|
-
ui.invoke_die("fail").must_equal 1
|
|
96
|
+
_(ui.invoke_die("fail")).must_equal 1
|
|
91
97
|
end
|
|
92
98
|
end
|
|
93
99
|
|
|
94
100
|
it "exits with a custom exit status" do
|
|
95
101
|
capture_stderr do
|
|
96
|
-
ui.invoke_die("fail", 16).must_equal 16
|
|
102
|
+
_(ui.invoke_die("fail", 16)).must_equal 16
|
|
97
103
|
end
|
|
98
104
|
end
|
|
99
105
|
end
|
|
@@ -103,45 +109,68 @@ describe Busser::UI do
|
|
|
103
109
|
it "calls #run with correct options" do
|
|
104
110
|
ui.invoke_run!("doitpls")
|
|
105
111
|
|
|
106
|
-
ui.run_args.must_equal([
|
|
112
|
+
_(ui.run_args).must_equal([
|
|
107
113
|
"doitpls",
|
|
108
114
|
{ :capture => false, :verbose => false}
|
|
109
115
|
])
|
|
110
116
|
end
|
|
111
117
|
|
|
112
118
|
it "returns true if command succeeded" do
|
|
113
|
-
ui.invoke_run!("great-stuff").must_equal true
|
|
119
|
+
_(ui.invoke_run!("great-stuff")).must_equal true
|
|
114
120
|
end
|
|
115
121
|
|
|
116
122
|
it "re-raises any exceptions from the underlying fork/exec" do
|
|
117
123
|
ui.stubs(:run).raises(Errno::ENOMEM)
|
|
118
124
|
|
|
119
|
-
capture_stderr
|
|
120
|
-
|
|
121
|
-
|
|
125
|
+
output = capture_stderr do
|
|
126
|
+
_ { ui.invoke_run!("failwhale") }.must_raise Errno::ENOMEM
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
_(output).must_match(/raised an exception/)
|
|
122
130
|
end
|
|
123
131
|
|
|
124
132
|
it "terminates the program if the command failed" do
|
|
125
133
|
ui.status = FakeStatus.new(false)
|
|
126
134
|
capture_stderr { ui.invoke_run!("failwhale") }
|
|
127
135
|
|
|
128
|
-
ui.died
|
|
136
|
+
_(ui.died?).must_equal true
|
|
129
137
|
end
|
|
130
138
|
|
|
131
139
|
it "terminates with the exit code of the failed command" do
|
|
132
140
|
ui.status = FakeStatus.new(false, 24)
|
|
133
141
|
|
|
134
142
|
capture_stderr do
|
|
135
|
-
ui.invoke_run!("failwhale").must_equal 24
|
|
143
|
+
_(ui.invoke_run!("failwhale")).must_equal 24
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# The out of memory killer stops a run with SIGKILL. exitstatus is nil
|
|
148
|
+
# there, and reporting it as an exit code used to raise a TypeError from
|
|
149
|
+
# Kernel#exit, so Busser died with a stack trace instead of saying what
|
|
150
|
+
# happened.
|
|
151
|
+
it "reports the signal when the command was killed" do
|
|
152
|
+
ui.status = FakeStatus.signalled(9)
|
|
153
|
+
output = capture_stderr { ui.invoke_run!("failwhale") }
|
|
154
|
+
|
|
155
|
+
_(output).must_match(/terminated by signal 9/)
|
|
156
|
+
_(ui.died?).must_equal true
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
it "terminates with 128 plus the signal when the command was killed" do
|
|
160
|
+
ui.status = FakeStatus.signalled(9)
|
|
161
|
+
|
|
162
|
+
capture_stderr do
|
|
163
|
+
_(ui.invoke_run!("failwhale")).must_equal 137
|
|
136
164
|
end
|
|
137
165
|
end
|
|
138
166
|
|
|
139
167
|
it "terminates the program if status is nil" do
|
|
140
168
|
ui.status = nil
|
|
141
|
-
capture_stderr { ui.invoke_run!("failwhale") }
|
|
142
|
-
must_match /did not return a valid status/
|
|
169
|
+
output = capture_stderr { ui.invoke_run!("failwhale") }
|
|
143
170
|
|
|
144
|
-
|
|
171
|
+
_(output).must_match(/did not return a valid status/)
|
|
172
|
+
|
|
173
|
+
_(ui.died?).must_equal true
|
|
145
174
|
end
|
|
146
175
|
end
|
|
147
176
|
|
|
@@ -150,7 +179,7 @@ describe Busser::UI do
|
|
|
150
179
|
it "calls #run_ruby_script with correct default options" do
|
|
151
180
|
ui.invoke_run_ruby_script!("theworks.rb")
|
|
152
181
|
|
|
153
|
-
ui.run_ruby_script_args.must_equal([
|
|
182
|
+
_(ui.run_ruby_script_args).must_equal([
|
|
154
183
|
"theworks.rb",
|
|
155
184
|
{ :capture => false, :verbose => false }
|
|
156
185
|
])
|
|
@@ -159,45 +188,68 @@ describe Busser::UI do
|
|
|
159
188
|
it "calls #run_ruby_script with correct default options" do
|
|
160
189
|
ui.invoke_run_ruby_script!("theworks.rb", :verbose => true)
|
|
161
190
|
|
|
162
|
-
ui.run_ruby_script_args.must_equal([
|
|
191
|
+
_(ui.run_ruby_script_args).must_equal([
|
|
163
192
|
"theworks.rb",
|
|
164
193
|
{ :capture => false, :verbose => true }
|
|
165
194
|
])
|
|
166
195
|
end
|
|
167
196
|
|
|
168
197
|
it "returns true if command succeeded" do
|
|
169
|
-
ui.invoke_run_ruby_script!("thewin.rb").must_equal true
|
|
198
|
+
_(ui.invoke_run_ruby_script!("thewin.rb")).must_equal true
|
|
170
199
|
end
|
|
171
200
|
|
|
172
201
|
it "re-raises any exceptions from the underlying fork/exec" do
|
|
173
202
|
ui.stubs(:run_ruby_script).raises(Errno::ENOMEM)
|
|
174
203
|
|
|
175
|
-
capture_stderr
|
|
176
|
-
|
|
177
|
-
|
|
204
|
+
output = capture_stderr do
|
|
205
|
+
_ { ui.invoke_run_ruby_script!("nope.rb") }.must_raise Errno::ENOMEM
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
_(output).must_match(/raised an exception/)
|
|
178
209
|
end
|
|
179
210
|
|
|
180
211
|
it "terminates the program if the script failed" do
|
|
181
212
|
ui.status = FakeStatus.new(false)
|
|
182
213
|
capture_stderr { ui.invoke_run_ruby_script!("nope.rb") }
|
|
183
214
|
|
|
184
|
-
ui.died
|
|
215
|
+
_(ui.died?).must_equal true
|
|
185
216
|
end
|
|
186
217
|
|
|
187
218
|
it "terminates with the exit code of the failed script" do
|
|
188
219
|
ui.status = FakeStatus.new(false, 97)
|
|
189
220
|
|
|
190
221
|
capture_stderr do
|
|
191
|
-
ui.invoke_run_ruby_script!("nadda.rb").must_equal 97
|
|
222
|
+
_(ui.invoke_run_ruby_script!("nadda.rb")).must_equal 97
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
# The out of memory killer stops a run with SIGKILL. exitstatus is nil
|
|
227
|
+
# there, and reporting it as an exit code used to raise a TypeError from
|
|
228
|
+
# Kernel#exit, so Busser died with a stack trace instead of saying what
|
|
229
|
+
# happened.
|
|
230
|
+
it "reports the signal when the command was killed" do
|
|
231
|
+
ui.status = FakeStatus.signalled(9)
|
|
232
|
+
output = capture_stderr { ui.invoke_run_ruby_script!("nope.rb") }
|
|
233
|
+
|
|
234
|
+
_(output).must_match(/terminated by signal 9/)
|
|
235
|
+
_(ui.died?).must_equal true
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
it "terminates with 128 plus the signal when the command was killed" do
|
|
239
|
+
ui.status = FakeStatus.signalled(9)
|
|
240
|
+
|
|
241
|
+
capture_stderr do
|
|
242
|
+
_(ui.invoke_run_ruby_script!("nope.rb")).must_equal 137
|
|
192
243
|
end
|
|
193
244
|
end
|
|
194
245
|
|
|
195
246
|
it "terminates the program if status is nil" do
|
|
196
247
|
ui.status = nil
|
|
197
|
-
capture_stderr { ui.invoke_run_ruby_script!("nope.rb") }
|
|
198
|
-
|
|
248
|
+
output = capture_stderr { ui.invoke_run_ruby_script!("nope.rb") }
|
|
249
|
+
|
|
250
|
+
_(output).must_match(/did not return a valid status/)
|
|
199
251
|
|
|
200
|
-
ui.died
|
|
252
|
+
_(ui.died?).must_equal true
|
|
201
253
|
end
|
|
202
254
|
end
|
|
203
255
|
|
data/spec/spec_helper.rb
CHANGED
|
@@ -16,11 +16,5 @@
|
|
|
16
16
|
# See the License for the specific language governing permissions and
|
|
17
17
|
# limitations under the License.
|
|
18
18
|
|
|
19
|
-
require 'fakefs/safe'
|
|
20
19
|
require 'minitest/autorun'
|
|
21
|
-
require 'mocha/
|
|
22
|
-
|
|
23
|
-
if ENV["COVERAGE"]
|
|
24
|
-
require 'simplecov'
|
|
25
|
-
SimpleCov.command_name "unit"
|
|
26
|
-
end
|
|
20
|
+
require 'mocha/minitest'
|
|
@@ -1,31 +1,11 @@
|
|
|
1
1
|
require "bundler/gem_tasks"
|
|
2
|
-
require
|
|
3
|
-
require 'cane/rake_task'
|
|
4
|
-
require 'tailor/rake_task'
|
|
2
|
+
require "cucumber/rake/task"
|
|
5
3
|
|
|
6
4
|
Cucumber::Rake::Task.new(:features) do |t|
|
|
7
|
-
t.cucumber_opts = [
|
|
5
|
+
t.cucumber_opts = ["features", "-x", "--format progress", "--no-color"]
|
|
8
6
|
end
|
|
9
7
|
|
|
10
8
|
desc "Run all test suites"
|
|
11
|
-
task :
|
|
9
|
+
task test: [:features]
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
Cane::RakeTask.new do |cane|
|
|
15
|
-
cane.canefile = './.cane'
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
Tailor::RakeTask.new
|
|
19
|
-
|
|
20
|
-
desc "Display LOC stats"
|
|
21
|
-
task :stats do
|
|
22
|
-
puts "\n## Production Code Stats"
|
|
23
|
-
sh "countloc -r lib"
|
|
24
|
-
puts "\n## Test Code Stats"
|
|
25
|
-
sh "countloc -r features"
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
desc "Run all quality tasks"
|
|
29
|
-
task :quality => [:cane, :tailor, :stats]
|
|
30
|
-
|
|
31
|
-
task :default => [:test, :quality]
|
|
11
|
+
task default: [:test]
|
|
@@ -11,20 +11,19 @@ Gem::Specification.new do |spec|
|
|
|
11
11
|
spec.description = %q{A Busser <%= config[:type] %> plugin for <%= config[:klass_name] %>}
|
|
12
12
|
spec.summary = spec.description
|
|
13
13
|
spec.homepage = ''
|
|
14
|
-
|
|
14
|
+
<% if config[:license_spdx] -%>
|
|
15
|
+
spec.license = '<%= config[:license_spdx] %>'
|
|
16
|
+
<% end -%>
|
|
15
17
|
|
|
16
18
|
spec.files = `git ls-files`.split($/)
|
|
17
19
|
spec.executables = []
|
|
18
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
20
|
spec.require_paths = ['lib']
|
|
20
21
|
|
|
22
|
+
spec.required_ruby_version = '>= 3.2'
|
|
23
|
+
|
|
21
24
|
spec.add_dependency 'busser'
|
|
22
25
|
|
|
23
|
-
spec.add_development_dependency 'bundler', '~> 1.3'
|
|
24
26
|
spec.add_development_dependency 'rake'
|
|
25
|
-
spec.add_development_dependency 'aruba'
|
|
26
|
-
|
|
27
|
-
spec.add_development_dependency 'cane'
|
|
28
|
-
spec.add_development_dependency 'tailor'
|
|
29
|
-
spec.add_development_dependency 'countloc'
|
|
27
|
+
spec.add_development_dependency 'aruba', '>= 2.0'
|
|
28
|
+
spec.add_development_dependency 'cucumber', '>= 9.0'
|
|
30
29
|
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Test"
|
|
3
|
+
|
|
4
|
+
"on":
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
name: "Ruby ${{ matrix.ruby }}"
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
ruby: ["3.2", "3.3", "3.4"]
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v5
|
|
22
|
+
- uses: ruby/setup-ruby@v1
|
|
23
|
+
with:
|
|
24
|
+
ruby-version: ${{ matrix.ruby }}
|
|
25
|
+
bundler-cache: true
|
|
26
|
+
- run: bundle exec rake test
|
metadata
CHANGED
|
@@ -1,79 +1,37 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: busser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.9.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fletcher Nichol
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-08-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "<="
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.19.0
|
|
20
|
-
type: :runtime
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "<="
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.19.0
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: aruba
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - '='
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: 0.7.4
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - '='
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: 0.7.4
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: bundler
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - ">="
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: cane
|
|
57
15
|
requirement: !ruby/object:Gem::Requirement
|
|
58
16
|
requirements:
|
|
59
17
|
- - ">="
|
|
60
18
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
62
|
-
type: :
|
|
19
|
+
version: '1.1'
|
|
20
|
+
type: :runtime
|
|
63
21
|
prerelease: false
|
|
64
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
23
|
requirements:
|
|
66
24
|
- - ">="
|
|
67
25
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
26
|
+
version: '1.1'
|
|
69
27
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
28
|
+
name: base64
|
|
71
29
|
requirement: !ruby/object:Gem::Requirement
|
|
72
30
|
requirements:
|
|
73
31
|
- - ">="
|
|
74
32
|
- !ruby/object:Gem::Version
|
|
75
33
|
version: '0'
|
|
76
|
-
type: :
|
|
34
|
+
type: :runtime
|
|
77
35
|
prerelease: false
|
|
78
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
37
|
requirements:
|
|
@@ -81,19 +39,19 @@ dependencies:
|
|
|
81
39
|
- !ruby/object:Gem::Version
|
|
82
40
|
version: '0'
|
|
83
41
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
42
|
+
name: aruba
|
|
85
43
|
requirement: !ruby/object:Gem::Requirement
|
|
86
44
|
requirements:
|
|
87
45
|
- - ">="
|
|
88
46
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0'
|
|
47
|
+
version: '2.0'
|
|
90
48
|
type: :development
|
|
91
49
|
prerelease: false
|
|
92
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
51
|
requirements:
|
|
94
52
|
- - ">="
|
|
95
53
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0'
|
|
54
|
+
version: '2.0'
|
|
97
55
|
- !ruby/object:Gem::Dependency
|
|
98
56
|
name: minitest
|
|
99
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -136,20 +94,6 @@ dependencies:
|
|
|
136
94
|
- - ">="
|
|
137
95
|
- !ruby/object:Gem::Version
|
|
138
96
|
version: '0'
|
|
139
|
-
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: simplecov
|
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
|
142
|
-
requirements:
|
|
143
|
-
- - ">="
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
version: '0'
|
|
146
|
-
type: :development
|
|
147
|
-
prerelease: false
|
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
-
requirements:
|
|
150
|
-
- - ">="
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: '0'
|
|
153
97
|
description: Busser - Runs tests for projects in Test Kitchen
|
|
154
98
|
email:
|
|
155
99
|
- fnichol@nichol.ca
|
|
@@ -158,17 +102,20 @@ executables:
|
|
|
158
102
|
extensions: []
|
|
159
103
|
extra_rdoc_files: []
|
|
160
104
|
files:
|
|
161
|
-
- ".
|
|
105
|
+
- ".github/workflows/ci.yml"
|
|
106
|
+
- ".github/workflows/pr-title.yml"
|
|
107
|
+
- ".github/workflows/publish.yml"
|
|
162
108
|
- ".gitignore"
|
|
163
|
-
- ".
|
|
164
|
-
- ".
|
|
109
|
+
- ".markdownlint.yaml"
|
|
110
|
+
- ".release-please-manifest.json"
|
|
111
|
+
- ".rubocop.yml"
|
|
112
|
+
- ".yamllint"
|
|
165
113
|
- CHANGELOG.md
|
|
114
|
+
- CONTRIBUTING.md
|
|
166
115
|
- Gemfile
|
|
167
|
-
- Guardfile
|
|
168
116
|
- LICENSE
|
|
169
117
|
- README.md
|
|
170
118
|
- Rakefile
|
|
171
|
-
- appveyor.yml
|
|
172
119
|
- bin/busser
|
|
173
120
|
- busser.gemspec
|
|
174
121
|
- features/deserialize_command.feature
|
|
@@ -201,7 +148,13 @@ files:
|
|
|
201
148
|
- lib/busser/thor.rb
|
|
202
149
|
- lib/busser/ui.rb
|
|
203
150
|
- lib/busser/version.rb
|
|
151
|
+
- release-please-config.json
|
|
152
|
+
- renovate.json
|
|
153
|
+
- spec/busser/command/deserialize_spec.rb
|
|
154
|
+
- spec/busser/command/plugin_create_spec.rb
|
|
155
|
+
- spec/busser/command/setup_spec.rb
|
|
204
156
|
- spec/busser/helpers_spec.rb
|
|
157
|
+
- spec/busser/plugin_spec.rb
|
|
205
158
|
- spec/busser/ui_spec.rb
|
|
206
159
|
- spec/spec_helper.rb
|
|
207
160
|
- templates/plugin/CHANGELOG.md.erb
|
|
@@ -213,18 +166,17 @@ files:
|
|
|
213
166
|
- templates/plugin/features_plugin_list_command.feature.erb
|
|
214
167
|
- templates/plugin/features_test_command.feature.erb
|
|
215
168
|
- templates/plugin/gemspec.erb
|
|
169
|
+
- templates/plugin/github_workflow.yml.erb
|
|
216
170
|
- templates/plugin/gitignore.erb
|
|
217
171
|
- templates/plugin/license_apachev2.erb
|
|
218
172
|
- templates/plugin/license_lgplv3.erb
|
|
219
173
|
- templates/plugin/license_mit.erb
|
|
220
174
|
- templates/plugin/license_reserved.erb
|
|
221
175
|
- templates/plugin/runner_plugin.rb.erb
|
|
222
|
-
- templates/plugin/tailor.erb
|
|
223
|
-
- templates/plugin/travis.yml.erb
|
|
224
176
|
- templates/plugin/version.rb.erb
|
|
225
177
|
homepage: https://github.com/test-kitchen/busser
|
|
226
178
|
licenses:
|
|
227
|
-
- Apache
|
|
179
|
+
- Apache-2.0
|
|
228
180
|
metadata: {}
|
|
229
181
|
post_install_message:
|
|
230
182
|
rdoc_options: []
|
|
@@ -234,26 +186,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
234
186
|
requirements:
|
|
235
187
|
- - ">="
|
|
236
188
|
- !ruby/object:Gem::Version
|
|
237
|
-
version:
|
|
189
|
+
version: '3.2'
|
|
238
190
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
239
191
|
requirements:
|
|
240
192
|
- - ">="
|
|
241
193
|
- !ruby/object:Gem::Version
|
|
242
194
|
version: '0'
|
|
243
195
|
requirements: []
|
|
244
|
-
rubygems_version: 3.
|
|
196
|
+
rubygems_version: 3.5.9
|
|
245
197
|
signing_key:
|
|
246
198
|
specification_version: 4
|
|
247
199
|
summary: Busser - Runs tests for projects in Test Kitchen
|
|
248
|
-
test_files:
|
|
249
|
-
- features/deserialize_command.feature
|
|
250
|
-
- features/files/base64.txt
|
|
251
|
-
- features/plugin_create_command.feature
|
|
252
|
-
- features/plugin_install_command.feature
|
|
253
|
-
- features/setup_command.feature
|
|
254
|
-
- features/suite_cleanup_command.feature
|
|
255
|
-
- features/suite_path_command.feature
|
|
256
|
-
- features/support/env.rb
|
|
257
|
-
- spec/busser/helpers_spec.rb
|
|
258
|
-
- spec/busser/ui_spec.rb
|
|
259
|
-
- spec/spec_helper.rb
|
|
200
|
+
test_files: []
|
data/.cane
DELETED
|
File without changes
|
data/.simplecov
DELETED
data/.travis.yml
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
|
|
3
|
-
rvm:
|
|
4
|
-
- 2.2
|
|
5
|
-
- 2.1
|
|
6
|
-
- 2.0.0
|
|
7
|
-
- 1.9.3
|
|
8
|
-
- ruby-head
|
|
9
|
-
|
|
10
|
-
env:
|
|
11
|
-
- RUBYGEMS_VERSION=
|
|
12
|
-
- RUBYGEMS_VERSION=2.4.5
|
|
13
|
-
- RUBYGEMS_VERSION=2.2.2
|
|
14
|
-
- RUBYGEMS_VERSION=2.1.11
|
|
15
|
-
- RUBYGEMS_VERSION=2.0.14
|
|
16
|
-
- RUBYGEMS_VERSION=1.8.29
|
|
17
|
-
|
|
18
|
-
before_install:
|
|
19
|
-
- if [ -n "$RUBYGEMS_VERSION" ]; then gem update --system $RUBYGEMS_VERSION; fi
|
|
20
|
-
- gem --version
|
|
21
|
-
|
|
22
|
-
bundler_args: --without guard
|
|
23
|
-
|
|
24
|
-
sudo: false
|
|
25
|
-
|
|
26
|
-
matrix:
|
|
27
|
-
allow_failures:
|
|
28
|
-
- rvm: ruby-head
|
|
29
|
-
exclude:
|
|
30
|
-
- rvm: 2.2
|
|
31
|
-
env: RUBYGEMS_VERSION=2.2.2
|
|
32
|
-
- rvm: 2.2
|
|
33
|
-
env: RUBYGEMS_VERSION=2.1.11
|
|
34
|
-
- rvm: 2.2
|
|
35
|
-
env: RUBYGEMS_VERSION=2.0.14
|
|
36
|
-
- rvm: 2.2
|
|
37
|
-
env: RUBYGEMS_VERSION=1.8.29
|
|
38
|
-
- rvm: 2.1
|
|
39
|
-
env: RUBYGEMS_VERSION=1.8.29
|
|
40
|
-
- rvm: 2.0.0
|
|
41
|
-
env: RUBYGEMS_VERSION=1.8.29
|
|
42
|
-
- rvm: ruby-head
|
|
43
|
-
env: RUBYGEMS_VERSION=2.2.2
|
|
44
|
-
- rvm: ruby-head
|
|
45
|
-
env: RUBYGEMS_VERSION=2.1.11
|
|
46
|
-
- rvm: ruby-head
|
|
47
|
-
env: RUBYGEMS_VERSION=2.0.14
|
|
48
|
-
- rvm: ruby-head
|
|
49
|
-
env: RUBYGEMS_VERSION=1.8.29
|
|
50
|
-
|
|
51
|
-
notifications:
|
|
52
|
-
irc: "chat.freenode.net#kitchenci"
|
data/Guardfile
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
guard 'minitest' do
|
|
2
|
-
watch(%r|^spec/(.*)_spec\.rb|)
|
|
3
|
-
watch(%r|^lib/(.*)([^/]+)\.rb|) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
|
4
|
-
watch(%r|^spec/spec_helper\.rb|) { "spec" }
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
guard 'cucumber' do
|
|
8
|
-
watch(%r{^features/.+\.feature$})
|
|
9
|
-
watch(%r{^features/support/.+$}) { 'features' }
|
|
10
|
-
watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
|
|
11
|
-
Dir[File.join("**/#{m[1]}.feature")][0] || 'features'
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
guard 'cane' do
|
|
16
|
-
watch(%r|.*\.rb|)
|
|
17
|
-
watch('.cane')
|
|
18
|
-
end
|