in lib/gitlab/qa/component/specs.rb [55:76]
def internal_perform
return Runtime::Logger.info("Skipping tests.") if skip_tests?
raise ArgumentError unless [suite, release].all?
docker_pull_qa_image_if_needed
Runtime::Logger.info("Running test suite `#{suite}` for #{release.project_name}")
name = "#{release.project_name}-qa-#{SecureRandom.hex(4)}"
run_specs(name)
rescue Support::ShellCommand::StatusError => e
raise e unless retry_failed_specs
Runtime::Logger.warn("Initial test run failed, attempting to retry failed specs in new process!")
results_file = File.join(host_artifacts_dir(name), LAST_RUN_FILE)
raise e unless valid_last_run_file?(results_file)
Runtime::Logger.debug("Found initial run results file '#{results_file}', retrying failed specs!")
run_specs(name, retry_process: true, initial_run_results_host_path: results_file)
end