mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 10:54:50 +08:00
DEV: add --seed
to turbo_rspec, tweak CI output (#21598)
This commit is contained in:
@ -10,6 +10,7 @@ requires = []
|
|||||||
formatters = []
|
formatters = []
|
||||||
verbose = false
|
verbose = false
|
||||||
fail_fast = nil
|
fail_fast = nil
|
||||||
|
seed = rand(2**16)
|
||||||
|
|
||||||
OptionParser
|
OptionParser
|
||||||
.new do |opts|
|
.new do |opts|
|
||||||
@ -35,6 +36,8 @@ OptionParser
|
|||||||
end
|
end
|
||||||
fail_fast = (n.nil? || n < 1) ? 1 : n
|
fail_fast = (n.nil? || n < 1) ? 1 : n
|
||||||
end
|
end
|
||||||
|
|
||||||
|
opts.on("--seed SEED", "The seed for the random order") { |s| seed = s.to_i }
|
||||||
end
|
end
|
||||||
.parse!(ARGV)
|
.parse!(ARGV)
|
||||||
|
|
||||||
@ -52,7 +55,10 @@ else
|
|||||||
use_runtime_info = false
|
use_runtime_info = false
|
||||||
end
|
end
|
||||||
|
|
||||||
puts "Running turbo_rspec using files in #{files}"
|
puts "::group::Run turbo_rspec" if ENV["GITHUB_ACTIONS"]
|
||||||
|
puts "Running turbo_rspec (seed: #{seed}) using files in: #{files}"
|
||||||
|
puts "::endgroup::" if ENV["GITHUB_ACTIONS"]
|
||||||
|
|
||||||
success =
|
success =
|
||||||
TurboTests::Runner.run(
|
TurboTests::Runner.run(
|
||||||
formatters: formatters,
|
formatters: formatters,
|
||||||
@ -60,6 +66,7 @@ success =
|
|||||||
verbose: verbose,
|
verbose: verbose,
|
||||||
fail_fast: fail_fast,
|
fail_fast: fail_fast,
|
||||||
use_runtime_info: use_runtime_info,
|
use_runtime_info: use_runtime_info,
|
||||||
|
seed: seed.to_s,
|
||||||
)
|
)
|
||||||
|
|
||||||
if success
|
if success
|
||||||
|
@ -43,7 +43,7 @@ module TurboTests
|
|||||||
def wrap
|
def wrap
|
||||||
@examples += 1
|
@examples += 1
|
||||||
|
|
||||||
if @examples == LINE_LENGTH
|
if ENV["GITHUB_ACTIONS"] && @examples == LINE_LENGTH
|
||||||
output.print "\n"
|
output.print "\n"
|
||||||
@examples = 0
|
@examples = 0
|
||||||
end
|
end
|
||||||
|
@ -5,12 +5,13 @@ module TurboTests
|
|||||||
def self.run(opts = {})
|
def self.run(opts = {})
|
||||||
files = opts[:files]
|
files = opts[:files]
|
||||||
formatters = opts[:formatters]
|
formatters = opts[:formatters]
|
||||||
|
seed = opts[:seed]
|
||||||
start_time = opts.fetch(:start_time) { Time.now }
|
start_time = opts.fetch(:start_time) { Time.now }
|
||||||
verbose = opts.fetch(:verbose, false)
|
verbose = opts.fetch(:verbose, false)
|
||||||
fail_fast = opts.fetch(:fail_fast, nil)
|
fail_fast = opts.fetch(:fail_fast, nil)
|
||||||
use_runtime_info = opts.fetch(:use_runtime_info, false)
|
use_runtime_info = opts.fetch(:use_runtime_info, false)
|
||||||
|
|
||||||
STDERR.puts "VERBOSE" if verbose
|
STDOUT.puts "VERBOSE" if verbose
|
||||||
|
|
||||||
reporter = Reporter.from_config(formatters, start_time)
|
reporter = Reporter.from_config(formatters, start_time)
|
||||||
|
|
||||||
@ -29,6 +30,7 @@ module TurboTests
|
|||||||
verbose: verbose,
|
verbose: verbose,
|
||||||
fail_fast: fail_fast,
|
fail_fast: fail_fast,
|
||||||
use_runtime_info: use_runtime_info,
|
use_runtime_info: use_runtime_info,
|
||||||
|
seed: seed,
|
||||||
).run
|
).run
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -46,6 +48,7 @@ module TurboTests
|
|||||||
@verbose = opts[:verbose]
|
@verbose = opts[:verbose]
|
||||||
@fail_fast = opts[:fail_fast]
|
@fail_fast = opts[:fail_fast]
|
||||||
@use_runtime_info = opts[:use_runtime_info]
|
@use_runtime_info = opts[:use_runtime_info]
|
||||||
|
@seed = opts[:seed]
|
||||||
@failure_count = 0
|
@failure_count = 0
|
||||||
|
|
||||||
@messages = Queue.new
|
@messages = Queue.new
|
||||||
@ -59,12 +62,7 @@ module TurboTests
|
|||||||
@num_processes = ParallelTests.determine_number_of_processes(nil)
|
@num_processes = ParallelTests.determine_number_of_processes(nil)
|
||||||
|
|
||||||
group_opts = {}
|
group_opts = {}
|
||||||
|
group_opts[:runtime_log] = "tmp/turbo_rspec_runtime.log" if @use_runtime_info
|
||||||
if @use_runtime_info
|
|
||||||
group_opts[:runtime_log] = "tmp/turbo_rspec_runtime.log"
|
|
||||||
else
|
|
||||||
group_opts[:group_by] = :filesize
|
|
||||||
end
|
|
||||||
|
|
||||||
tests_in_groups =
|
tests_in_groups =
|
||||||
ParallelTests::RSpec::Runner.tests_in_groups(@files, @num_processes, **group_opts)
|
ParallelTests::RSpec::Runner.tests_in_groups(@files, @num_processes, **group_opts)
|
||||||
@ -160,8 +158,8 @@ module TurboTests
|
|||||||
"exec",
|
"exec",
|
||||||
"rspec",
|
"rspec",
|
||||||
*extra_args,
|
*extra_args,
|
||||||
"--seed",
|
"--order",
|
||||||
rand(2**16).to_s,
|
"random:#{@seed}",
|
||||||
"--format",
|
"--format",
|
||||||
"TurboTests::JsonRowsFormatter",
|
"TurboTests::JsonRowsFormatter",
|
||||||
"--out",
|
"--out",
|
||||||
@ -175,9 +173,9 @@ module TurboTests
|
|||||||
[env.map { |k, v| "#{k}=#{v}" }.join(" "), command.join(" ")].select { |x| x.size > 0 }
|
[env.map { |k, v| "#{k}=#{v}" }.join(" "), command.join(" ")].select { |x| x.size > 0 }
|
||||||
.join(" ")
|
.join(" ")
|
||||||
|
|
||||||
STDERR.puts "::group::[#{process_id}] Run RSpec" if ENV["CI"]
|
STDOUT.puts "::group::[#{process_id}] Run RSpec" if ENV["GITHUB_ACTIONS"]
|
||||||
STDERR.puts "Process #{process_id}: #{command_str}"
|
STDOUT.puts "Process #{process_id}: #{command_str}"
|
||||||
STDERR.puts "::endgroup::" if ENV["CI"]
|
STDOUT.puts "::endgroup::" if ENV["GITHUB_ACTIONS"]
|
||||||
end
|
end
|
||||||
|
|
||||||
stdin, stdout, stderr, wait_thr = Open3.popen3(env, *command)
|
stdin, stdout, stderr, wait_thr = Open3.popen3(env, *command)
|
||||||
|
Reference in New Issue
Block a user