diff options
Diffstat (limited to 'buildscripts/evergreen_activate_gen_tasks.py')
| -rwxr-xr-x | buildscripts/evergreen_activate_gen_tasks.py | 52 |
1 files changed, 29 insertions, 23 deletions
diff --git a/buildscripts/evergreen_activate_gen_tasks.py b/buildscripts/evergreen_activate_gen_tasks.py index 13eed325701..1ccd95642c5 100755 --- a/buildscripts/evergreen_activate_gen_tasks.py +++ b/buildscripts/evergreen_activate_gen_tasks.py @@ -21,6 +21,9 @@ from buildscripts.util.taskname import remove_gen_suffix LOGGER = structlog.getLogger(__name__) EVG_CONFIG_FILE = "./.evergreen.yml" +BURN_IN_TAGS = "burn_in_tags" +BURN_IN_TESTS = "burn_in_tests" +BURN_IN_VARIANT_SUFFIX = "generated-by-burn-in-tags" class EvgExpansions(BaseModel): @@ -28,10 +31,12 @@ class EvgExpansions(BaseModel): Evergreen expansions file contents. build_id: ID of build being run. + version_id: ID of version being run. task_name: Name of task creating the generated configuration. """ build_id: str + version_id: str task_name: str @classmethod @@ -45,7 +50,7 @@ class EvgExpansions(BaseModel): return remove_gen_suffix(self.task_name) -def activate_task(build_id: str, task_name: str, evg_api: EvergreenApi) -> None: +def activate_task(expansions: EvgExpansions, evg_api: EvergreenApi) -> None: """ Activate the given task in the specified build. @@ -53,27 +58,28 @@ def activate_task(build_id: str, task_name: str, evg_api: EvergreenApi) -> None: :param task_name: Name of task to activate. :param evg_api: Evergreen API client. """ - build = evg_api.build_by_id(build_id) - task_list = build.get_tasks() - for task in task_list: - if task.display_name == task_name: - LOGGER.info("Activating task", task_id=task.task_id, task_name=task.display_name) - evg_api.configure_task(task.task_id, activated=True) - - # if any(ARCHIVE_DIST_TEST_TASK in dependency["id"] for dependency in task.depends_on): - # _activate_archive_debug_symbols(evg_api, task_list) - - -# def _activate_archive_debug_symbols(evg_api: EvergreenApi, task_list): -# debug_iter = filter(lambda tsk: tsk.display_name == ACTIVATE_ARCHIVE_DIST_TEST_DEBUG_TASK, -# task_list) -# activate_symbol_tasks = list(debug_iter) -# -# if len(activate_symbol_tasks) == 1: -# activated_symbol_task = activate_symbol_tasks[0] -# if not activated_symbol_task.activated: -# LOGGER.info("Activating debug symbols archival", task_id=activated_symbol_task.task_id) -# evg_api.configure_task(activated_symbol_task.task_id, activated=True) + if expansions.task == BURN_IN_TAGS: + version = evg_api.version_by_id(expansions.version_id) + burn_in_build_variants = [ + variant for variant in version.build_variants_map.keys() + if variant.endswith(BURN_IN_VARIANT_SUFFIX) + ] + for build_variant in burn_in_build_variants: + build_id = version.build_variants_map[build_variant] + task_list = evg_api.tasks_by_build(build_id) + + for task in task_list: + if task.display_name == BURN_IN_TESTS: + LOGGER.info("Activating task", task_id=task.task_id, + task_name=task.display_name) + evg_api.configure_task(task.task_id, activated=True) + + else: + task_list = evg_api.tasks_by_build(expansions.build_id) + for task in task_list: + if task.display_name == expansions.task: + LOGGER.info("Activating task", task_id=task.task_id, task_name=task.display_name) + evg_api.configure_task(task.task_id, activated=True) @click.command() @@ -96,7 +102,7 @@ def main(expansion_file: str, evergreen_config: str, verbose: bool) -> None: expansions = EvgExpansions.from_yaml_file(expansion_file) evg_api = RetryingEvergreenApi.get_api(config_file=evergreen_config) - activate_task(expansions.build_id, expansions.task, evg_api) + activate_task(expansions, evg_api) if __name__ == "__main__": |
