Skip to content
Snippets Groups Projects

Remove the need to download knapsack report from gcs bucket

Merged Andrejs Cunskis requested to merge andrey-knapsack-remove-gcs-dep into master
3 files
+ 81
34
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -3,26 +3,44 @@
module QA
module Specs
class KnapsackRunner
def self.run(args, parallel: false)
QA::Support::KnapsackReport.configure!
class << self
def run(args, rspec_tags:, parallel: false)
knapsack_reporter = Support::KnapsackReport.new
knapsack_reporter.configure!
knapsack_reporter.create_local_report!(executable_example_ids(rspec_tags))
allocator = Knapsack::AllocatorBuilder.new(Knapsack::Adapters::RSpecAdapter).allocator
allocator = Knapsack::AllocatorBuilder.new(Knapsack::Adapters::RSpecAdapter).allocator
Knapsack.logger.info '==== Knapsack specs to execute ====='
Knapsack.logger.info 'Report specs:'
Knapsack.logger.info allocator.report_node_tests
Knapsack.logger.info 'Leftover specs:'
Knapsack.logger.info allocator.leftover_node_tests
Knapsack.logger.info '==== Knapsack specs to execute ====='
Knapsack.logger.info 'Report specs:'
Knapsack.logger.info allocator.report_node_tests
Knapsack.logger.info 'Leftover specs:'
Knapsack.logger.info allocator.leftover_node_tests
if parallel
rspec_args = args.reject { |arg| arg == "--" || arg.start_with?("qa/specs/features") }
run_args = [*rspec_args, '--', *allocator.node_tests]
return ParallelRunner.run(run_args)
if parallel
rspec_args = args.reject { |arg| arg == "--" || arg.start_with?("qa/specs/features") }
run_args = [*rspec_args, '--', *allocator.node_tests]
return ParallelRunner.run(run_args)
end
status = RSpec::Core::Runner.run([*args, '--', *allocator.node_tests])
yield status if block_given?
status
end
status = RSpec::Core::Runner.run([*args, '--', *allocator.node_tests])
yield status if block_given?
status
private
# Example ids that are not skipped by dynamic conditions
#
# @param rspec_tags [Array<String>]
# @return [Array<String>]
def executable_example_ids(rspec_tags)
Support::ExampleData.fetch(rspec_tags).each_with_object([]) do |example, ids|
next unless example[:status] == "passed"
ids << example[:id]
end
end
end
end
end
Loading