コード例 #1
0
ファイル: selected_tests.py プロジェクト: zh820952173/mongo
def remove_task_configs_already_in_build(task_configs: Dict[str, Dict], evg_api: EvergreenApi,
                                         build_variant_config: Variant, version_id: str) -> None:
    """
    Remove the task_configs that exist for tasks that have been pulled into the build manually.

    :param task_configs: The task configurations for the tasks to be generated.
    :param evg_api: Evergreen API object.
    :param build_variant_config: Config of build variant to collect task info from.
    :param version_id: The version_id of the version running selected tests.
    """
    version = evg_api.version_by_id(version_id)

    try:
        build = version.build_by_variant(build_variant_config.name)
    except KeyError:
        LOGGER.debug("No build exists on this build variant for this version yet",
                     variant=build_variant_config.name)
        build = None

    if build:
        tasks_already_in_build = build.get_tasks()
        for task in tasks_already_in_build:
            if task.display_name in task_configs:
                LOGGER.info(
                    "Will not generate task that has already been pulled into the build manually",
                    variant=build_variant_config.name, task_already_in_build=task.display_name)
                del task_configs[task.display_name]
コード例 #2
0
def find_build_for_previous_compile_task(evg_api: EvergreenApi, target: TargetBuild) -> Build:
    """
    Find build_id of the base revision.

    :param evg_api: Evergreen.py object.
    :param target: Build being targeted.
    :return: build_id of the base revision.
    """
    project_prefix = target.project.replace("-", "_")
    version_of_base_revision = "{}_{}".format(project_prefix, target.revision)
    version = evg_api.version_by_id(version_of_base_revision)
    build = version.build_by_variant(target.build_variant)
    return build
コード例 #3
0
def activate_task(expansions: EvgExpansions, evg_api: EvergreenApi) -> None:
    """
    Activate the given task in the specified build.

    :param expansions: Evergreen expansions file contents.
    :param evg_api: Evergreen API client.
    """
    if expansions.task == BURN_IN_TAGS:
        version = evg_api.version_by_id(expansions.version_id)
        for base_build_variant in expansions.burn_in_tag_buildvariants_list:
            build_variant = f"{base_build_variant}-required"
            try:
                build = version.build_by_variant(build_variant)
            except KeyError:
                LOGGER.warning(
                    "It is likely nothing to burn_in, so burn_in_tags build variant"
                    " was not generated. Skipping...",
                    build_variant=build_variant)
                continue

            task_list = build.get_tasks()
            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:
        build = evg_api.build_by_id(expansions.build_id)
        task_list = build.get_tasks()
        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)