Skip to content

Commit b15285c

Browse files
committed
🔧 Make Magic Happen
1 parent 62e1569 commit b15285c

File tree

8 files changed

+52
-14
lines changed

8 files changed

+52
-14
lines changed

.github/workflows/coverage.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
# Coverage
4949
- ruby: "ruby"
5050
appraisal: "coverage"
51-
exec_cmd: "rake test"
51+
exec_cmd: "rake magic"
5252
gemfile: "Appraisal.root"
5353
rubygems: latest
5454
bundler: latest

.github/workflows/current.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,23 +40,23 @@ jobs:
4040
# Ruby 4.0
4141
- ruby: "ruby"
4242
appraisal: "current"
43-
exec_cmd: "rake test"
43+
exec_cmd: "rake magic"
4444
gemfile: "Appraisal.root"
4545
rubygems: latest
4646
bundler: latest
4747

4848
# truffleruby-33.0 (targets Ruby 3.3 compatibility)
4949
- ruby: "truffleruby"
5050
appraisal: "current"
51-
exec_cmd: "rake test"
51+
exec_cmd: "rake magic"
5252
gemfile: "Appraisal.root"
5353
rubygems: default
5454
bundler: default
5555

5656
# jruby-10.0 (targets Ruby 3.4 compatibility)
5757
- ruby: "jruby"
5858
appraisal: "current"
59-
exec_cmd: "rake test"
59+
exec_cmd: "rake magic"
6060
gemfile: "Appraisal.root"
6161
rubygems: default
6262
bundler: default

.github/workflows/dep-heads.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,23 +42,23 @@ jobs:
4242
# Ruby 3.4
4343
- ruby: "ruby"
4444
appraisal: "dep-heads"
45-
exec_cmd: "rake test"
45+
exec_cmd: "rake magic"
4646
gemfile: "Appraisal.root"
4747
rubygems: latest
4848
bundler: latest
4949

5050
# truffleruby-24.1 (targets Ruby 3.3 compatibility)
5151
- ruby: "truffleruby"
5252
appraisal: "dep-heads"
53-
exec_cmd: "rake test"
53+
exec_cmd: "rake magic"
5454
gemfile: "Appraisal.root"
5555
rubygems: default
5656
bundler: default
5757

5858
# jruby-10.0 (targets Ruby 3.4 compatibility)
5959
- ruby: "jruby"
6060
appraisal: "dep-heads"
61-
exec_cmd: "rake test"
61+
exec_cmd: "rake magic"
6262
gemfile: "Appraisal.root"
6363
rubygems: default
6464
bundler: default

.github/workflows/heads.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,23 +41,23 @@ jobs:
4141
# ruby-head
4242
- ruby: "ruby-head"
4343
appraisal: "head"
44-
exec_cmd: "rake test"
44+
exec_cmd: "rake magic"
4545
gemfile: "Appraisal.root"
4646
rubygems: default
4747
bundler: default
4848

4949
# truffleruby-head
5050
- ruby: "truffleruby-head"
5151
appraisal: "head"
52-
exec_cmd: "rake test"
52+
exec_cmd: "rake magic"
5353
gemfile: "Appraisal.root"
5454
rubygems: default
5555
bundler: default
5656

5757
# jruby-head
5858
- ruby: "jruby-head"
5959
appraisal: "head"
60-
exec_cmd: "rake test"
60+
exec_cmd: "rake magic"
6161
gemfile: "Appraisal.root"
6262
rubygems: default
6363
bundler: default

.github/workflows/legacy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
# Ruby 3.2
4141
- ruby: "ruby-3.2"
4242
appraisal: "ruby-3-2"
43-
exec_cmd: "rake test"
43+
exec_cmd: "rake magic"
4444
gemfile: "Appraisal.root"
4545
rubygems: latest
4646
bundler: latest

.github/workflows/supported.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ jobs:
3939
# Ruby 3.4
4040
- ruby: "ruby-3.4"
4141
appraisal: "ruby-3-4"
42-
exec_cmd: "rake test"
42+
exec_cmd: "rake magic"
4343
gemfile: "Appraisal.root"
4444
rubygems: latest
4545
bundler: latest
4646

4747
# Ruby 3.3
4848
- ruby: "ruby-3.3"
4949
appraisal: "ruby-3-3"
50-
exec_cmd: "rake test"
50+
exec_cmd: "rake magic"
5151
gemfile: "Appraisal.root"
5252
rubygems: latest
5353
bundler: latest

.github/workflows/truffle.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
# truffleruby-25.0 (targets Ruby 3.2 compatibility)
4141
- ruby: "truffleruby-25.0"
4242
appraisal: "ruby-3-2"
43-
exec_cmd: "rake test"
43+
exec_cmd: "rake magic"
4444
gemfile: "Appraisal.root"
4545
rubygems: default
4646
bundler: default

Rakefile

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,44 @@ end
5656
# External gems that define tasks - add here!
5757
require "kettle/dev"
5858

59+
### SPEC TASKS
60+
# For coverage aggregation with SimpleCov merging:
61+
# - Each task uses a unique K_SOUP_COV_COMMAND_NAME so SimpleCov tracks them separately
62+
# - K_SOUP_COV_USE_MERGING=true must be set in .envrc for results to merge
63+
# - K_SOUP_COV_MERGE_TIMEOUT should be set long enough for all tasks to complete
64+
begin
65+
require "rspec/core/rake_task"
66+
67+
# kettle-dev creates an RSpec::Core::RakeTask.new(:spec) which has both
68+
# prerequisites and actions. We will leave that, and the default test task, alone,
69+
# and use *magic* here.
70+
Rake::Task[:magic].clear if Rake::Task.task_defined?(:magic)
71+
desc("Run specs")
72+
RSpec::Core::RakeTask.new(:magic) do |t|
73+
t.pattern = "./spec/**/*_spec.rb"
74+
end
75+
76+
desc("Set SimpleCov command name for remaining specs")
77+
task(:set_coverage_command_name) do
78+
ENV["K_SOUP_COV_COMMAND_NAME"] = "Test Coverage"
79+
end
80+
Rake::Task[:magic].enhance([:set_coverage_command_name])
81+
82+
Rake::Task[:coverage].clear if Rake::Task.task_defined?(:coverage)
83+
desc("Slap magic onto the main coverage task")
84+
task(:coverage => [:magic])
85+
rescue LoadError
86+
desc("(stub) spec is unavailable")
87+
task(:spec) do # rubocop:disable Rake/DuplicateTask
88+
warn("NOTE: rspec isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
89+
end
90+
91+
desc("(stub) test is unavailable")
92+
task(:test) do # rubocop:disable Rake/DuplicateTask
93+
warn("NOTE: rspec isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
94+
end
95+
end
96+
5997
### RELEASE TASKS
6098
# Setup stone_checksums
6199
begin

0 commit comments

Comments
 (0)