gecko_taskgraph.actions 包

子模块

gecko_taskgraph.actions.add_new_jobs 模块

gecko_taskgraph.actions.add_new_jobs.add_new_jobs_action(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.add_talos 模块

gecko_taskgraph.actions.add_talos.add_all_talos(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.backfill 模块

gecko_taskgraph.actions.backfill.add_all_browsertime(parameters, graph_config, input, task_group_id, task_id)

此操作通常由 backfill-all-browsertime 操作调度。目的是触发当前修订版的所有 browsertime 任务。

我们希望在其中调度新任务的推送由 parameters 对象定义。

要本地执行此操作,请遵循此处的文档: https://firefox-source-docs.mozilla.ac.cn/taskcluster/actions.html#testing-the-action-locally

gecko_taskgraph.actions.backfill.add_backfill_suffix(regex, symbol, suffix)
gecko_taskgraph.actions.backfill.add_task_with_original_manifests(parameters, graph_config, input, task_group_id, task_id)

此操作通常由 backfill 操作调度。目的是使用原始任务(如果可用)中的测试清单调度测试任务。

我们希望在其中调度新任务的推送由 parameters 对象定义。

要本地执行此操作,请遵循此处的文档: https://firefox-source-docs.mozilla.ac.cn/taskcluster/actions.html#testing-the-action-locally

gecko_taskgraph.actions.backfill.backfill_action(parameters, graph_config, input, task_group_id, task_id)

此操作获取任务 ID 并将其安排在以前的推送上(通过支持操作)。

要本地执行此操作,请遵循此处的文档: https://firefox-source-docs.mozilla.ac.cn/taskcluster/actions.html#testing-the-action-locally

gecko_taskgraph.actions.backfill.backfill_all_browsertime(parameters, graph_config, input, task_group_id, task_id)

此操作获取修订版并将其安排在以前的推送上(通过支持操作)。

要本地执行此操作,请遵循此处的文档: https://firefox-source-docs.mozilla.ac.cn/taskcluster/actions.html#testing-the-action-locally

gecko_taskgraph.actions.backfill.backfill_modifier(task, input)
gecko_taskgraph.actions.backfill.do_not_modify(task)
gecko_taskgraph.actions.backfill.filter_raptor_jobs(full_task_graph, label_to_taskid, project)
gecko_taskgraph.actions.backfill.input_for_support_action(revision, task, times=1, retrigger=True)

生成要调度的操作的输入。

使用“label”定义要调度哪个标签。如果它是一个使用显式清单的测试任务,则添加该信息。

gecko_taskgraph.actions.backfill.new_label(label, tasks)

这是为了处理先前推送不包含特定任务标签并且我们尝试查找可以重用的标签的情况。

例如,我们尝试回填块 #3,但是,先前的推送不包含此类块,因此,我们尝试重用其他任务/标签。

gecko_taskgraph.actions.cancel 模块

gecko_taskgraph.actions.cancel.cancel_action(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.cancel_all 模块

gecko_taskgraph.actions.cancel_all.cancel_all_action(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.confirm_failure 模块

gecko_taskgraph.actions.confirm_failure.confirm_failures(parameters, graph_config, input, task_group_id, task_id)
gecko_taskgraph.actions.confirm_failure.confirm_modifier(task, input)
gecko_taskgraph.actions.confirm_failure.get_failures(task_id, task_definition)

返回一个字典,其中包含包含包含测试失败的目录列表和来自任务的 errorsummary.log 工件的单个测试失败的单独列表的属性。

查找要传递给 MOZHARNESS_TEST_PATHS 中任务的测试路径。如果无法确定合适的测试路径,则不返回任何内容。

gecko_taskgraph.actions.confirm_failure.get_repeat_args(task_definition, failure_group)

gecko_taskgraph.actions.create_interactive 模块

gecko_taskgraph.actions.create_interactive.context(params)
gecko_taskgraph.actions.create_interactive.create_interactive_action(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.gecko_profile 模块

gecko_taskgraph.actions.gecko_profile.add_args_to_perf_command(payload_commands, extra_args=[])

向给定命令添加自定义命令行参数。:param payload_commands: taskcluster 所见的原始命令 :param extra_args: 我们想要注入的参数数组

gecko_taskgraph.actions.gecko_profile.geckoprofile_action(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.googleplay 模块

gecko_taskgraph.actions.googleplay.add_push_bundle(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.merge_automation 模块

gecko_taskgraph.actions.merge_automation.is_release_promotion_available(parameters)
gecko_taskgraph.actions.merge_automation.merge_automation_action(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.openh264 模块

gecko_taskgraph.actions.openh264.openh264_action(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.purge_caches 模块

gecko_taskgraph.actions.purge_caches.purge_caches_action(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.raptor_extra_options 模块

gecko_taskgraph.actions.raptor_extra_options.raptor_extra_options_action(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.rebuild_cached_tasks 模块

gecko_taskgraph.actions.rebuild_cached_tasks.rebuild_cached_tasks_action(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.registry 模块

class gecko_taskgraph.actions.registry.Action(order, cb_name, permission, action_builder)

基类: tuple

action_builder

字段编号 3 的别名

cb_name

字段编号 1 的别名

order

字段编号 0 的别名

permission

字段编号 2 的别名

gecko_taskgraph.actions.registry.hash_taskcluster_yml(filename)

生成给定 .taskcluster.yml 的哈希值。这是文件内容的 sha256 前 10 位数字,由管理脚本根据此内容创建钩子。

gecko_taskgraph.actions.registry.is_json(data)

如果 data 是一个 JSON 可序列化数据结构,则返回 True

gecko_taskgraph.actions.registry.read_taskcluster_yml(filename)

加载并解析 .taskcluster.yml,进行记忆化以节省时间

gecko_taskgraph.actions.registry.register_callback_action(name, title, symbol, description, order=10000, context=[], available=<function <lambda>>, schema=None, permission='generic', cb_name=None)

注册一个回调动作,可以从支持的用户界面(如 Treeherder)触发。

此函数用作回调的装饰器,回调接受以下参数

parameters:

决策任务参数,参见 taskgraph.parameters.Parameters

input:

匹配指定 JSON 架构的输入,如果未向 register_callback_action 提供 schema 参数,则为 None

task_group_id:

触发此操作的任务组的 ID。

task_idtask`

触发操作的任务标识符和任务定义,如果未向 register_callback_action 提供 context 参数,则为 None

参数:
  • name (str) – 此操作的标识符,用户界面使用此标识符查找操作。

  • title (str) – 操作的人类可读标题,用作按钮上的标签或触发操作的链接上的文本。

  • symbol (str) – 操作回调的 Treeherder 符号,这是调用回调的任务将显示的符号。这通常是缩写操作标题的 1-3 个字母。

  • description (str) – 操作的人类可读描述,使用 **markdown** 格式。这将显示为工具提示和在触发操作时的对话框窗口中。这是描述如何使用操作的好地方。

  • order (int) – 菜单中操作的顺序,这相对于声明的其他操作的 order

  • context (list of dict) –

    指定操作可以作为输入接收的任务标记集列表。如果未指定标记集作为输入,则操作与整个任务组相关,并且不会使用给定任务触发。

    否则,如果 context = [{'k': 'b', 'p': 'l'}, {'k': 't'}] 仅在具有 task.tags.k == 'b' && task.tags.p = 'l'task.tags.k = 't' 的任务的上下文菜单中显示。从本质上讲,这允许根据 task.tags 进行过滤。

    如果这是一个函数,则会提供决策参数,并且必须返回上面描述的格式的值。

  • available (function) – 一个可选函数,在给定决策参数的情况下确定操作是否可用。默认为始终返回 True 的函数。

  • schema (dict) – 指定操作接受的输入的 JSON 架构。这是可选的,如果未接受输入,可以保留为 null

  • permission (string) – 默认为 generic,需要为需要其他权限的操作设置。它出现在 ci 配置和各种角色和钩子名称中。

  • cb_name (string) – 注册此函数的名称,默认为 name。与 name 可以多次出现不同,cb_name 在所有注册的回调中必须是唯一的。

返回值:

用作回调函数的装饰器。

返回类型:

function

gecko_taskgraph.actions.registry.render_actions_json(parameters, graph_config, decision_task_id)

渲染 public/actions.json 工件的 JSON 对象。

参数:

parameters (taskgraph.parameters.Parameters) – 决策任务参数。

返回值:

public/actions.json 工件的 JSON 对象表示形式。

返回类型:

dict

gecko_taskgraph.actions.registry.sanity_check_task_scope(callback, parameters, graph_config)

如果此操作不是通用的,则验证此任务是否具有运行操作的必要范围。这作为后备措施,防止通过使用通用钩子运行非通用操作来滥用。虽然范围应防止此类滥用造成严重损害,但这样做永远不是一件有效的事情。

gecko_taskgraph.actions.registry.trigger_action_callback(task_group_id, task_id, input, callback, parameters, root, test=False)

使用给定的输入触发操作回调。如果 test 为真,则在测试模式下运行操作回调,而无需实际创建任务。

gecko_taskgraph.actions.release_promotion 模块

gecko_taskgraph.actions.release_promotion.get_flavors(graph_config, param)

获取启用了给定参数的所有风味。

gecko_taskgraph.actions.release_promotion.get_partner_config(partner_url_config, github_token)
gecko_taskgraph.actions.release_promotion.get_required_signoffs(input, parameters)
gecko_taskgraph.actions.release_promotion.get_signoff_properties()
gecko_taskgraph.actions.release_promotion.get_signoff_urls(input, parameters)
gecko_taskgraph.actions.release_promotion.is_release_promotion_available(parameters)
gecko_taskgraph.actions.release_promotion.release_promotion_action(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.retrigger 模块

gecko_taskgraph.actions.retrigger.rerun_action(parameters, graph_config, input, task_group_id, task_id)
gecko_taskgraph.actions.retrigger.retrigger_action(parameters, graph_config, input, task_group_id, task_id)
gecko_taskgraph.actions.retrigger.retrigger_decision_action(parameters, graph_config, input, task_group_id, task_id)

对于单个任务,我们尝试再次运行完全相同的任务。我们很可能没有权限这样做(特别是对于操作),但这是一种尽力而为的方法。

gecko_taskgraph.actions.retrigger.retrigger_multiple(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.retrigger_custom 模块

gecko_taskgraph.actions.retrigger_custom.basic_custom_retrigger_action_basic(parameters, graph_config, input, task_group_id, task_id)
gecko_taskgraph.actions.retrigger_custom.extended_custom_retrigger_action(parameters, graph_config, input, task_group_id, task_id)
gecko_taskgraph.actions.retrigger_custom.handle_custom_retrigger(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.run_missing_tests 模块

gecko_taskgraph.actions.run_missing_tests.run_missing_tests(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.scriptworker_canary 模块

gecko_taskgraph.actions.scriptworker_canary.scriptworker_canary(parameters, graph_config, input, task_group_id, task_id)

gecko_taskgraph.actions.side_by_side 模块

gecko_taskgraph.actions.side_by_side.input_for_support_action(revision, base_revision, base_branch, task)

生成要调度的操作的输入。

使用“label”定义要调度哪个标签。如果它是一个使用显式清单的测试任务,则添加该信息。

gecko_taskgraph.actions.side_by_side.side_by_side_action(parameters, graph_config, input, task_group_id, task_id)

此操作对当前修订版和手动输入的修订版或运行页面加载作业的最新修订版(通过支持操作)进行并排比较。

要本地执行此操作,请遵循此处的文档: https://firefox-source-docs.mozilla.ac.cn/taskcluster/actions.html#testing-the-action-locally

gecko_taskgraph.actions.side_by_side.side_by_side_modifier(task, input)

gecko_taskgraph.actions.util 模块

gecko_taskgraph.actions.util.add_args_to_command(cmd_parts, extra_args=[])

将自定义命令行参数添加到给定命令。:param cmd_parts: taskcluster 中看到的原始命令 :param extra_args: 我们要添加的参数数组

gecko_taskgraph.actions.util.combine_task_graph_files(suffixes)

将 task-graph-{suffix}.json 文件合并到单个 task-graph.json 文件中。

由于信任链验证需要包含所有子任务的 task-graph.json 文件,因此我们可以在最后将各种 task-graph-0.json 类型的文件合并到主 task-graph.json 文件中。

操作还会查找各种工件,因此我们以类似的方式合并它们。

在只有一个后缀的情况下,我们只需将其重命名以避免上传两个相同数据的额外成本。

gecko_taskgraph.actions.util.create_task_from_def(task_def, level, action_tag=None)

从定义而不是完整任务图中已有的标签创建新任务。任务定义将具有 {relative-datestamp’: ‘..’},就像在决策任务中一样。将其用于全新的任务或更改任务内部结构的任务。如果您想“编辑”full_task_graph 然后将其传递给此函数,这很有用。不会安排任何依赖项。您必须自己处理。查看 create_tasks 如何处理它可能会有所帮助。

gecko_taskgraph.actions.util.create_tasks(graph_config, to_run, full_task_graph, label_to_taskid, params, decision_task_id, suffix='', modifier=<function <lambda>>, action_tag=None)

创建新任务。任务定义将具有 {relative-datestamp’: ‘..’},就像在决策任务中一样。操作回调应使用此函数创建新任务,以便使用 mach taskgraph action-callback –test 进行轻松调试。这构建了按顺序运行所需的所有任务,以运行请求的任务。

可选地,此函数接受一个 modifier 函数,该函数在每个任务放入新图之前传递给它。它应该返回一个有效的任务。请注意,这会将图中的_所有_任务传递进来,而不仅仅是 to_run 中的集合。您可能希望跳过修改不在 to_run 列表中的任务。

如果给出了 suffix,则它用于为生成的工件提供唯一名称。如果您在同一操作中多次调用此函数,请每次传递不同的后缀以避免覆盖工件。

如果您希望在新组中创建任务,请省略 decision_task_id。

返回一个更新的 label_to_taskid,其中包含新任务

gecko_taskgraph.actions.util.fetch_graph_and_labels(parameters, graph_config)
gecko_taskgraph.actions.util.get_decision_task_id(project, push_id)
gecko_taskgraph.actions.util.get_parameters(decision_task_id)
gecko_taskgraph.actions.util.get_pushes(project, end_id, depth, full_response=False)
gecko_taskgraph.actions.util.get_pushes_from_params_input(parameters, input)
gecko_taskgraph.actions.util.get_tasks_with_downstream(labels, full_task_graph, label_to_taskid)
gecko_taskgraph.actions.util.relativize_datestamps(task_def)

给定从队列接收的任务定义,将所有日期戳转换为 {relative_datestamp: ..} 格式,其中任务创建时间为“现在”。结果可用于传递给 create_task

gecko_taskgraph.actions.util.trigger_action(action_name, decision_task_id, task_id=None, input={})
gecko_taskgraph.actions.util.update_action_tag(task, graph, action_tag)
gecko_taskgraph.actions.util.update_dependencies(task, graph)
gecko_taskgraph.actions.util.update_parent(task, graph)

模块内容

gecko_taskgraph.actions.register_callback_action(name, title, symbol, description, order=10000, context=[], available=<function <lambda>>, schema=None, permission='generic', cb_name=None)

注册一个回调动作,可以从支持的用户界面(如 Treeherder)触发。

此函数用作回调的装饰器,回调接受以下参数

parameters:

决策任务参数,参见 taskgraph.parameters.Parameters

input:

匹配指定 JSON 架构的输入,如果未向 register_callback_action 提供 schema 参数,则为 None

task_group_id:

触发此操作的任务组的 ID。

task_idtask`

触发操作的任务标识符和任务定义,如果未向 register_callback_action 提供 context 参数,则为 None

参数:
  • name (str) – 此操作的标识符,用户界面使用此标识符查找操作。

  • title (str) – 操作的人类可读标题,用作按钮上的标签或触发操作的链接上的文本。

  • symbol (str) – 操作回调的 Treeherder 符号,这是调用回调的任务将显示的符号。这通常是缩写操作标题的 1-3 个字母。

  • description (str) – 操作的人类可读描述,使用 **markdown** 格式。这将显示为工具提示和在触发操作时的对话框窗口中。这是描述如何使用操作的好地方。

  • order (int) – 菜单中操作的顺序,这相对于声明的其他操作的 order

  • context (list of dict) –

    指定操作可以作为输入接收的任务标记集列表。如果未指定标记集作为输入,则操作与整个任务组相关,并且不会使用给定任务触发。

    否则,如果 context = [{'k': 'b', 'p': 'l'}, {'k': 't'}] 仅在具有 task.tags.k == 'b' && task.tags.p = 'l'task.tags.k = 't' 的任务的上下文菜单中显示。从本质上讲,这允许根据 task.tags 进行过滤。

    如果这是一个函数,则会提供决策参数,并且必须返回上面描述的格式的值。

  • available (function) – 一个可选函数,在给定决策参数的情况下确定操作是否可用。默认为始终返回 True 的函数。

  • schema (dict) – 指定操作接受的输入的 JSON 架构。这是可选的,如果未接受输入,可以保留为 null

  • permission (string) – 默认为 generic,需要为需要其他权限的操作设置。它出现在 ci 配置和各种角色和钩子名称中。

  • cb_name (string) – 注册此函数的名称,默认为 name。与 name 可以多次出现不同,cb_name 在所有注册的回调中必须是唯一的。

返回值:

用作回调函数的装饰器。

返回类型:

function

gecko_taskgraph.actions.render_actions_json(parameters, graph_config, decision_task_id)

渲染 public/actions.json 工件的 JSON 对象。

参数:

parameters (taskgraph.parameters.Parameters) – 决策任务参数。

返回值:

public/actions.json 工件的 JSON 对象表示形式。

返回类型:

dict

gecko_taskgraph.actions.trigger_action_callback(task_group_id, task_id, input, callback, parameters, root, test=False)

使用给定的输入触发操作回调。如果 test 为真,则在测试模式下运行操作回调,而无需实际创建任务。