class SleepingKingStudios::Tasks::Ci::StepsTask
Thor task for running each step in the CI suite and generating a report.
Public Class Methods
description()
click to toggle source
# File lib/sleeping_king_studios/tasks/ci/steps_task.rb, line 12 def self.description 'Runs the configured steps for your test suite.' end
Public Instance Methods
call(*files)
click to toggle source
Calls superclass method
SleepingKingStudios::Tasks::Ci::StepsRunner#call
# File lib/sleeping_king_studios/tasks/ci/steps_task.rb, line 30 def call *files results = super report results report_failures results results end
Private Instance Methods
ci_steps()
click to toggle source
# File lib/sleeping_king_studios/tasks/ci/steps_task.rb, line 42 def ci_steps SleepingKingStudios::Tasks.configuration.ci.steps_with_options end
failing?(step)
click to toggle source
# File lib/sleeping_king_studios/tasks/ci/steps_task.rb, line 46 def failing? step return true if step.failing? return true if step.respond_to?(:errored?) && step.errored? false end
format_failures(failing_steps)
click to toggle source
# File lib/sleeping_king_studios/tasks/ci/steps_task.rb, line 54 def format_failures failing_steps tools.ary.humanize_list(failing_steps) do |name| set_color(name, :red) end # humanize list end
report(results)
click to toggle source
# File lib/sleeping_king_studios/tasks/ci/steps_task.rb, line 60 def report results rows = results.map do |key, obj| [set_color("#{key}:", results_color(obj)), obj.to_s] end # results say "\n" print_table rows end
report_failures(results)
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/sleeping_king_studios/tasks/ci/steps_task.rb, line 72 def report_failures results failing_steps = results.each.with_object([]) do |(key, step), ary| ary << key if failing?(step) end # each say "\n" if failing_steps.empty? say 'The CI suite passed.', :green return end # if say "The following steps failed: #{format_failures failing_steps}" say "\n" raise Thor::Error, 'The CI suite failed.' end