internal_perform

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