def _find_task(build_variant_config: Variant, task_name: str) -> Task: """ Look up shrub config for task. :param build_variant_config: Config of build variant to collect task info from. :param task_name: Name of task to get info for. :return: Task configuration. """ task = build_variant_config.get_task(task_name) if not task: task = build_variant_config.get_task(task_name + "_gen") return task
def _get_evg_task_config( selected_tests_variant_expansions: Dict[str, str], task_name: str, build_variant_config: Variant, ) -> Dict[str, Any]: """ Look up task config of the task to be generated. :param selected_tests_variant_expansions: Expansions of the selected-tests variant. :param task_name: Task to get info for. :param build_variant_config: Config of build variant to collect task info from. :return: Task configuration values. """ task = build_variant_config.get_task(task_name) if task.is_generate_resmoke_task: task_vars = task.generate_resmoke_tasks_command["vars"] else: task_vars = task.run_tests_command["vars"] task_vars.update({"fallback_num_sub_suites": "1"}) suite_name = ResmokeArgs.get_arg(task_vars["resmoke_args"], "suites") if suite_name: task_vars.update({"suite": suite_name}) # the suites argument will run all tests in a suite even when individual # tests are specified in resmoke_args, so we remove it resmoke_args_without_suites = ResmokeArgs.remove_arg(task_vars["resmoke_args"], "suites") task_vars["resmoke_args"] = resmoke_args_without_suites selected_tests_task_config = _get_selected_tests_task_config(selected_tests_variant_expansions) return { "task_name": task.name, "build_variant": build_variant_config.name, **task_vars, **selected_tests_task_config }