gecko_taskgraph.util 包¶
子模块¶
gecko_taskgraph.util.attributes 模块¶
- gecko_taskgraph.util.attributes.copy_attributes_from_dependent_job(dep_job, denylist=())¶
- gecko_taskgraph.util.attributes.is_try(params)¶
确定此图是否在 try 项目上或 mach try fuzzy 上构建。
- gecko_taskgraph.util.attributes.match_run_on_hg_branches(hg_branch, run_on_hg_branches)¶
确定给定项目是否包含在 run-on-hg-branches 参数中。允许“all”。
- gecko_taskgraph.util.attributes.match_run_on_projects(project, run_on_projects)¶
确定给定项目是否包含在 run-on-projects 参数中,并对属性文档中提到的“integration”等内容进行扩展。
- gecko_taskgraph.util.attributes.release_level(project)¶
这是否是暂存版本。
- 返回 str:
“production” 或 “staging” 之一。
- gecko_taskgraph.util.attributes.sorted_unique_list(*args)¶
连接一个或多个列表,并返回一个排序的唯一成员列表
- gecko_taskgraph.util.attributes.task_name(task)¶
gecko_taskgraph.util.backstop 模块¶
- gecko_taskgraph.util.backstop.is_backstop(params, push_interval=20, time_interval=240, trust_domain='gecko', integration_projects={'autoland'}, backstop_strategy='backstop')¶
确定给定参数是否代表一个 backstop 推送。
- 参数:
push_interval (int) – 推送次数
time_interval (int) – 强制调度之间的时间间隔(分钟)。使用 0 禁用。
trust_domain (str) – Firefox 为“gecko”,Thunderbird 为“comm”
integration_projects (set) – 使用 backstop 优化的项目
- 返回:
如果这是一个 backstop,则返回 True,否则返回 False。
- 返回类型:
bool
gecko_taskgraph.util.bugbug 模块¶
- exception gecko_taskgraph.util.bugbug.BugbugTimeoutException¶
基类:
Exception
- gecko_taskgraph.util.bugbug.get_session()¶
- gecko_taskgraph.util.bugbug.push_schedules(branch, rev)¶
- gecko_taskgraph.util.bugbug.translate_group(group)¶
gecko_taskgraph.util.cached_tasks 模块¶
- gecko_taskgraph.util.cached_tasks.add_optimization(config, taskdesc, cache_type, cache_name, digest=None, digest_data=None)¶
允许缓存此任务的结果。这会向任务添加索引路由,以便在以后的运行中查找它,以及优化提示,以便可以找到缓存的工件。必须传递 digest 和 digest_data 中的一个。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
taskdesc (dict) – 当前任务的描述。
cache_type (str) – 正在缓存的任务结果的类型。
cache_name (str) – 正在缓存的对象的名称。
digest (bytes or None) – 用于标识正在生成的工件此版本的唯一字符串。通常,这将是任务输入的哈希值。
digest_data (list of bytes or None) – 表示此任务输入的字节列表。它们将被连接并哈希以创建此任务的摘要。
gecko_taskgraph.util.chunking 模块¶
处理测试分块的实用程序函数。
- class gecko_taskgraph.util.chunking.BaseManifestLoader(params)¶
基类:
object
- abstract get_manifests(flavor, subsuite, mozinfo)¶
计算对于给定的风格、子套件和 mozinfo 应该运行哪些清单。
此函数分别返回跳过的清单,以便可以通过仅在分块算法中考虑“活动”清单来实现更平衡的块。
- 参数:
flavor (str) – 要运行的套件。值由 moztest.resolve.TEST_SUITES 中的“build_flavor”键定义。
subsuite (str) – 要运行的子套件或“undefined”表示没有子套件。
mozinfo (frozenset) – 用于过滤的数据集,形式为(<key>,<value>)。
- 返回:
两个清单列表的元组。第一个是活动清单集(至少运行一个测试。第二个是跳过清单的列表(所有测试都被跳过)。
- class gecko_taskgraph.util.chunking.BugbugLoader(*args, **kwargs)¶
基类:
DefaultLoader
使用 TestResolver 中的元数据加载清单,然后根据对 bugbug 的查询对其进行过滤。
- CONFIDENCE_THRESHOLD = 0.7¶
- get_manifests(suite, mozinfo)¶
计算对于给定的风格、子套件和 mozinfo 应该运行哪些清单。
此函数分别返回跳过的清单,以便可以通过仅在分块算法中考虑“活动”清单来实现更平衡的块。
- 参数:
flavor (str) – 要运行的套件。值由 moztest.resolve.TEST_SUITES 中的“build_flavor”键定义。
subsuite (str) – 要运行的子套件或“undefined”表示没有子套件。
mozinfo (frozenset) – 用于过滤的数据集,形式为(<key>,<value>)。
- 返回:
两个清单列表的元组。第一个是活动清单集(至少运行一个测试。第二个是跳过清单的列表(所有测试都被跳过)。
- class gecko_taskgraph.util.chunking.DefaultLoader(params)¶
-
使用 TestResolver 中的元数据加载清单。
- get_manifests(suite, frozen_mozinfo)¶
计算对于给定的风格、子套件和 mozinfo 应该运行哪些清单。
此函数分别返回跳过的清单,以便可以通过仅在分块算法中考虑“活动”清单来实现更平衡的块。
- 参数:
flavor (str) – 要运行的套件。值由 moztest.resolve.TEST_SUITES 中的“build_flavor”键定义。
subsuite (str) – 要运行的子套件或“undefined”表示没有子套件。
mozinfo (frozenset) – 用于过滤的数据集,形式为(<key>,<value>)。
- 返回:
两个清单列表的元组。第一个是活动清单集(至少运行一个测试。第二个是跳过清单的列表(所有测试都被跳过)。
- get_tests(suite)¶
- gecko_taskgraph.util.chunking.chunk_manifests(suite, platform, chunks, manifests)¶
运行分块算法。
- 参数:
platform (str) – 用于查找运行时信息的平台。
chunks (int) – 将清单分成多少个块。
manifests (list) – 要分块的清单。
- 返回:
一个长度为 chunks 的列表,每个项目包含一个在该块中运行的清单列表。
- gecko_taskgraph.util.chunking.get_manifest_loader(name, params)¶
- gecko_taskgraph.util.chunking.get_runtimes(platform, suite_name)¶
- gecko_taskgraph.util.chunking.get_test_tags(config, env)¶
- gecko_taskgraph.util.chunking.guess_mozinfo_from_task(task, repo='', app_version='', test_tags=[])¶
尝试从任务定义构建一个 mozinfo 字典。
这不会是完美的,清单中使用的许多值都将丢失。但它应该涵盖大多数主要值,并且对于任务图中的分块来说“足够好”。
- 参数:
task (dict) – 任务定义。
- 返回:
一个可以作为 mozinfo 替换的字典。
gecko_taskgraph.util.declarative_artifacts 模块¶
- gecko_taskgraph.util.declarative_artifacts.get_geckoview_artifact_id(config, platform, package, update_channel=None)¶
- gecko_taskgraph.util.declarative_artifacts.get_geckoview_artifact_map(config, job)¶
- gecko_taskgraph.util.declarative_artifacts.get_geckoview_template_vars(config, platform, package, update_channel)¶
- gecko_taskgraph.util.declarative_artifacts.get_geckoview_upstream_artifacts(config, job, package, platform='')¶
gecko_taskgraph.util.dependencies 模块¶
- gecko_taskgraph.util.dependencies.chunk_locale_grouping(config, tasks)¶
按 chunk_locale 分组(但也按平台、构建类型、产品分组)
此分组是为带有公证的 Mac 签名编写的,但在其他地方也可能有用。
- gecko_taskgraph.util.dependencies.partner_repack_ids_grouping(config, tasks)¶
按 partner_repack_ids 分组(但也按平台、构建类型、产品分组)
此分组是为 release-{eme-free,partner}-repack-signing 编写的。
- gecko_taskgraph.util.dependencies.platform_grouping(config, tasks)¶
- gecko_taskgraph.util.dependencies.single_grouping(config, tasks)¶
- gecko_taskgraph.util.dependencies.single_locale_grouping(config, tasks)¶
按单个语言环境分组(但也按平台、构建类型、产品分组)
语言环境可以是 None(en-US 构建/签名/重新打包)、单个语言环境或每个任务的多个语言环境,例如用于 l10n 分块。对于具有五个语言环境的任务,该任务将显示在所有五个语言环境分组中。
此分组是为非合作伙伴重新打包 beetmover 编写的,但在其他地方也可能有用。
- gecko_taskgraph.util.dependencies.skip_only_or_not(config, task)¶
如果我们应该根据 only_ 或 not_ 配置跳过此任务,则返回 True。
gecko_taskgraph.util.docker 模块¶
- class gecko_taskgraph.util.docker.HashingWriter(writer)¶
基类:
object
一个具有写入功能的文件对象,它在将数据传递到真实文件对象的同时对写入的数据进行哈希。
- hexdigest()¶
- write(buf)¶
- class gecko_taskgraph.util.docker.ImagePathsMap(config_path, image_dir='/builds/worker/checkouts/gecko/taskcluster/docker')¶
基类:
Mapping
ImagePathsMap 包含 Docker 镜像名称与其在文件系统中的上下文位置的映射。register 函数允许 Thunderbird 在 comm/taskcluster 下定义其他镜像。
- register(jobs_config_path, image_dir)¶
注册其他 image_paths。在这种情况下,加载的 YAML 中没有“jobs”键,因为此文件是通过 kind.yml 中的 jobs-from 加载的。
- gecko_taskgraph.util.docker.create_context_tar(topsrcdir, context_dir, out_path, image_name, args)¶
创建上下文 tarball。
包含 Dockerfile 的目录
context_dir
将被组装成一个 gzip 压缩的 tar 文件,位于out_path
。我们还扫描源 Dockerfile 以查找影响上下文生成的特有语法。
如果 Dockerfile 中的一行具有
# %include <path>
形式,则该行上指定的相对路径将与源存储库中的文件匹配,并添加到topsrcdir/
下的路径下的上下文中。如果一个条目是目录,我们将添加该目录下的所有文件。返回创建的归档文件的 SHA-256 十六进制摘要。
- gecko_taskgraph.util.docker.docker_image(name, by_tag=False)¶
将树内预构建的 Docker 镜像解析为
<registry>/<repository>@sha256:<digest>
,或者如果 by_tag 为 True,则解析为<registry>/<repository>:<tag>
。
- gecko_taskgraph.util.docker.docker_url(path, **kwargs)¶
- gecko_taskgraph.util.docker.generate_context_hash(topsrcdir, image_path, image_name, args)¶
生成用于构建镜像的上下文目录的 sha256 哈希。
- gecko_taskgraph.util.docker.image_path(name)¶
- gecko_taskgraph.util.docker.parse_volumes(image)¶
解析镜像的 Dockerfile 中的 VOLUME 条目。
- gecko_taskgraph.util.docker.post_to_docker(tar, api_path, **kwargs)¶
将 tar 文件 POST 到给定的 docker API 路径。
tar 参数可以是任何可以作为数据传递给 requests.post() 的内容(例如迭代器或文件对象)。额外的关键字参数作为参数传递给 docker API。
- gecko_taskgraph.util.docker.stream_context_tar(topsrcdir, context_dir, out_file, image_name, args)¶
类似于 create_context_tar,但将 tar 文件流式传输到 out_file 文件对象。
gecko_taskgraph.util.hash 模块¶
- gecko_taskgraph.util.hash.get_file_finder(base_path)¶
- gecko_taskgraph.util.hash.hash_path(path)¶
对单个文件进行哈希计算。
返回十六进制形式的 SHA-256 哈希值。
- gecko_taskgraph.util.hash.hash_paths(base_path, patterns)¶
给定路径模式列表,返回所有对应文件内容的摘要,类似于 git 树对象或 mercurial 清单。
对每个文件进行哈希计算。然后对所有哈希值和文件路径列表本身进行哈希计算以生成结果。
gecko_taskgraph.util.hg 模块¶
- gecko_taskgraph.util.hg.calculate_head_rev(root)¶
- gecko_taskgraph.util.hg.find_hg_revision_push_info(repository, revision)¶
给定此操作的参数和修订版本,查找修订版本的 pushlog_id。
- gecko_taskgraph.util.hg.get_hg_commit_message(root, rev='.')¶
- gecko_taskgraph.util.hg.get_hg_revision_branch(root, revision)¶
给定修订版本的参数,查找修订版本的 hg_branch(又名 relbranch)。
- gecko_taskgraph.util.hg.get_json_pushchangedfiles(repository, revision)¶
- gecko_taskgraph.util.hg.get_push_data(repository, project, push_id_start, push_id_end)¶
gecko_taskgraph.util.partials 模块¶
- gecko_taskgraph.util.partials.find_localtest(fileUrls)¶
- gecko_taskgraph.util.partials.get_balrog_platform_name(platform)¶
将构建平台名称转换为 balrog 平台名称。
删除已知值,以捕获 aarch64 和可能添加的其他平台。
- gecko_taskgraph.util.partials.get_builds(release_history, platform, locale)¶
检查缓存的 balrog 版本历史记录并返回我们需要从中生成差异的构建列表
- gecko_taskgraph.util.partials.get_partials_artifacts_from_params(release_history, platform, locale)¶
- gecko_taskgraph.util.partials.get_partials_info_from_params(release_history, platform, locale)¶
- gecko_taskgraph.util.partials.get_release_builds(release, branch)¶
- gecko_taskgraph.util.partials.get_sorted_releases(product, branch)¶
从 Balrog 返回版本名称列表。:param product: 产品名称,又名 appName :param branch: 分支名称,例如 mozilla-central :return: 版本名称的排序列表,最新的排在最前面。
- gecko_taskgraph.util.partials.populate_release_history(product, branch, maxbuilds=4, maxsearch=10, partial_updates=None)¶
gecko_taskgraph.util.partners 模块¶
- gecko_taskgraph.util.partners.GITHUB_API_ENDPOINT = 'https://api.github.com/graphql'¶
LOGIN_QUERY、MANIFEST_QUERY 和 REPACK_CFG_QUERY 都写入 Github v4 API,该 API 使用 GraphQL。请参阅 https://developer.github.com/v4/
- gecko_taskgraph.util.partners.apply_partner_priority(config, jobs)¶
- gecko_taskgraph.util.partners.check_if_partners_enabled(config, tasks)¶
- gecko_taskgraph.util.partners.check_login(token)¶
- gecko_taskgraph.util.partners.fix_partner_config(orig_config)¶
- gecko_taskgraph.util.partners.generate_attribution_code(defaults, partner)¶
- gecko_taskgraph.util.partners.get_attribution_config(manifestRepo, token)¶
- gecko_taskgraph.util.partners.get_ftp_platform(platform)¶
- gecko_taskgraph.util.partners.get_partner_config_by_kind(config, kind)¶
从清单 URL 开始检索合作伙伴数据,该 URL 指向包含 default.xml 的存储库,该文件旨在驱动 Google 工具“repo”。它深入到每个合作伙伴存储库以查找和解析 repack.cfg 文件。
支持按类型缓存数据以避免重复请求,依赖于合作伙伴重新打包、签名、重新打包、重新打包签名的相关类型都具有相同的类型前缀。
- gecko_taskgraph.util.partners.get_partner_config_by_url(manifest_url, kind, token, partner_subset=None)¶
从清单 URL 开始检索合作伙伴数据,该 URL 指向包含 default.xml 的存储库,该文件旨在驱动 Google 工具“repo”。它深入到每个合作伙伴存储库以查找和解析 repack.cfg 文件。
如果 partner_subset 是 sub_config 名称的列表,则仅返回这些名称的数据。
支持按类型缓存数据以避免重复请求,依赖于合作伙伴重新打包、签名、重新打包、重新打包签名的相关类型都具有相同的类型前缀。
- gecko_taskgraph.util.partners.get_partner_url_config(parameters, graph_config)¶
- gecko_taskgraph.util.partners.get_partners(manifestRepo, token)¶
给定清单存储库的 URL,检索 default.xml 并将其解析为合作伙伴存储库列表。
- gecko_taskgraph.util.partners.get_partners_to_be_published(config)¶
- gecko_taskgraph.util.partners.get_repack_configs(repackRepo, token)¶
对于合作伙伴存储库,检索所有 repack.cfg 文件并将其解析为字典
- gecko_taskgraph.util.partners.get_repack_ids_by_platform(config, build_platform)¶
- gecko_taskgraph.util.partners.get_repo_params(repo)¶
从存储库的 https 或 git URL 中解析组织和存储库名称
- gecko_taskgraph.util.partners.get_token(params)¶
我们使用 Github 的个人访问令牌来查找合作伙伴配置。令牌不需要额外的范围即可读取公共存储库,但需要“repo”范围才能查看私有存储库。这没有细粒度控制,还会授予读写访问权限,但会在存储库级别撤销。
- gecko_taskgraph.util.partners.locales_per_build_platform(build_platform, locales)¶
- gecko_taskgraph.util.partners.parse_config(data)¶
- 将单个repack.cfg文件解析为Python字典。
data是文件的内容,格式为“foo=bar
- baz=buzz”。我们对
语言环境和平台数据进行一些转换,否则直接传递。
- gecko_taskgraph.util.partners.query_api(query, token)¶
使用Github身份验证头发出查询,并返回json。
gecko_taskgraph.util.perfile 模块¶
- gecko_taskgraph.util.perfile.perfile_number_of_chunks(is_try, try_task_config, files_changed, type)¶
gecko_taskgraph.util.perftest 模块¶
- gecko_taskgraph.util.perftest.is_external_browser(label)¶
gecko_taskgraph.util.platforms 模块¶
- gecko_taskgraph.util.platforms.architecture(build_platform)¶
- gecko_taskgraph.util.platforms.archive_format(build_platform)¶
给定一个构建平台,返回该平台上使用的归档格式。
- gecko_taskgraph.util.platforms.executable_extension(build_platform)¶
给定一个构建平台,返回该平台上使用的可执行文件扩展名。
- gecko_taskgraph.util.platforms.platform_family(build_platform)¶
给定一个构建平台,返回平台系列(linux、macosx等)。
gecko_taskgraph.util.scriptworker 模块¶
通过使作用域动态化,使scriptworker.cot.verify更易于用户使用。
Scriptworker使用某些作用域来确定使用哪组凭据。某些作用域在信任链验证的分支中受到限制,并在脚本级别再次进行检查。此文件提供函数以根据项目自动调整这些作用域;这使得推送到try、派生项目分支以及合并日升级更易于用户使用。
将来,我们也可能根据其他设置调整作用域,例如,即使两者都发生在mozilla-beta和mozilla-release上,push-to-candidates与push-to-releases也使用不同的作用域。
其他配置可以在图配置中找到。
- gecko_taskgraph.util.scriptworker.BALROG_ACTIONS = ('submit-locale', 'submit-toplevel', 'schedule', 'v2-submit-locale', 'v2-submit-toplevel')¶
将balrog作用域别名映射到项目集。
这是一个列表对列表,用于排序。
- gecko_taskgraph.util.scriptworker.BALROG_SCOPE_ALIAS_TO_PROJECT = [['nightly', {'comm-central', 'larch', 'mozilla-central', 'pine'}], ['beta', {'comm-beta', 'mozilla-beta'}], ['release', {'comm-release', 'mozilla-release'}], ['esr115', {'comm-esr115', 'mozilla-esr115'}], ['esr128', {'comm-esr128', 'mozilla-esr128'}]]¶
将balrog作用域别名映射到实际的作用域。
- gecko_taskgraph.util.scriptworker.BALROG_SERVER_SCOPES = {'aurora': 'balrog:server:aurora', 'beta': 'balrog:server:beta', 'default': 'balrog:server:dep', 'esr115': 'balrog:server:esr', 'esr128': 'balrog:server:esr', 'nightly': 'balrog:server:nightly', 'release': 'balrog:server:release'}¶
我们发送通知的发布升级阶段列表。
- gecko_taskgraph.util.scriptworker.BEETMOVER_ACTION_SCOPES = {'default': 'beetmover:action:push-to-candidates', 'nightly': 'beetmover:action:push-to-nightly', 'nightly-larch': 'beetmover:action:push-to-nightly', 'nightly-pine': 'beetmover:action:push-to-nightly'}¶
将beetmover任务别名映射到实际的动作作用域。动作作用域在不同存储库类型中是通用的。
- gecko_taskgraph.util.scriptworker.BEETMOVER_APT_REPO_SCOPES = {'all-nightly-branches': 'beetmover:apt-repo:nightly', 'all-release-branches': 'beetmover:apt-repo:release', 'default': 'beetmover:apt-repo:dep'}¶
将beetmover任务别名映射到实际的动作作用域。
- gecko_taskgraph.util.scriptworker.BEETMOVER_BUCKET_SCOPES = {'all-nightly-branches': 'beetmover:bucket:nightly', 'all-release-branches': 'beetmover:bucket:release', 'default': 'beetmover:bucket:dep'}¶
将beetmover作用域别名映射到实际的作用域。这些是将工件导入产品交付APT存储库所需的范围。
- gecko_taskgraph.util.scriptworker.BEETMOVER_REPO_ACTION_SCOPES = {'default': 'beetmover:action:import-from-gcs-to-artifact-registry'}¶
已知的balrog操作。
- gecko_taskgraph.util.scriptworker.BEETMOVER_SCOPE_ALIAS_TO_PROJECT = [['all-nightly-branches', {'comm-central', 'larch', 'mozilla-central', 'pine'}], ['all-release-branches', {'comm-beta', 'comm-esr115', 'comm-esr128', 'comm-release', 'mozilla-beta', 'mozilla-esr115', 'mozilla-esr128', 'mozilla-release'}]]¶
将beetmover作用域别名映射到实际的作用域。
- gecko_taskgraph.util.scriptworker.DEVEDITION_SIGNING_CERT_SCOPES = {'beta': 'signing:cert:nightly-signing', 'default': 'signing:cert:dep-signing'}¶
将beetmover作用域别名映射到项目集。
- gecko_taskgraph.util.scriptworker.SIGNING_SCOPE_ALIAS_TO_PROJECT = [['all-nightly-branches', {'comm-central', 'larch', 'mozilla-central', 'pine'}], ['all-release-branches', {'comm-beta', 'comm-esr115', 'comm-esr128', 'comm-release', 'mozilla-beta', 'mozilla-esr115', 'mozilla-esr128', 'mozilla-release'}]]¶
将签名作用域别名映射到实际的作用域。
- gecko_taskgraph.util.scriptworker.add_scope_prefix(config, scope)¶
从图配置中添加scriptworker作用域前缀。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
scope (字符串) – 作用域的后缀
- 返回:
要使用的范围。
- 返回类型:
字符串
- gecko_taskgraph.util.scriptworker.generate_artifact_registry_gcs_sources(dep)¶
- gecko_taskgraph.util.scriptworker.generate_beetmover_artifact_map(config, job, **kwargs)¶
生成beetmover工件映射。
目前仅适用于beetmover任务。
- 参数:
() (配置) – 当前任务图配置。
job (字典) – 正在生成的当前作业
- 常用关键字参数
platform (str): 当前构建平台 locale (str): 正在beetmove的当前语言环境。
- 返回:
- 包含源->目标的字典列表
beetmover的映射。
- 返回类型:
列表
- gecko_taskgraph.util.scriptworker.generate_beetmover_partials_artifact_map(config, job, partials_info, **kwargs)¶
生成beetmover部分工件映射。
目前仅适用于beetmover任务。
- 参数:
() (配置) – 当前任务图配置。
job (字典) – 正在生成的当前作业
partials_info (字典) – 当前部分及其在字典中的信息
- 常用关键字参数
platform (str): 当前构建平台 locale (str): 正在beetmove的当前语言环境。
- 返回:
- 包含源->目标的字典列表
beetmover的映射。
- 返回类型:
列表
- gecko_taskgraph.util.scriptworker.generate_beetmover_upstream_artifacts(config, job, platform, locale=None, dependencies=None, **kwargs)¶
使用工件映射生成beetmover的上游工件。
目前仅适用于beetmover任务。
- 参数:
job (字典) – 正在生成的当前作业
dependencies (列表) – 作业依赖项标签的列表。
platform (字符串) – 当前构建平台
locale (字符串) – 正在beetmove的当前语言环境。
- 返回:
符合upstream_artifacts规范的字典列表。
- 返回类型:
列表
- gecko_taskgraph.util.scriptworker.get_balrog_server_scope(config, *, alias_to_project_map=[['nightly', {'comm-central', 'larch', 'mozilla-central', 'pine'}], ['beta', {'comm-beta', 'mozilla-beta'}], ['release', {'comm-release', 'mozilla-release'}], ['esr115', {'comm-esr115', 'mozilla-esr115'}], ['esr128', {'comm-esr128', 'mozilla-esr128'}]], alias_to_scope_map={'aurora': 'balrog:server:aurora', 'beta': 'balrog:server:beta', 'default': 'balrog:server:dep', 'esr115': 'balrog:server:esr', 'esr128': 'balrog:server:esr', 'nightly': 'balrog:server:nightly', 'release': 'balrog:server:release'})¶
确定来自config.params[‘project’]的受限范围。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
alias_to_project_map (list of lists) – 每个列表对包含别名和匹配的项目集。这是有序的。
alias_to_scope_map (dict) – 别名到范围的映射
- 返回:
要使用的范围。
- 返回类型:
字符串
- gecko_taskgraph.util.scriptworker.get_beetmover_action_scope(config, *, release_type_to_scope_map={'default': 'beetmover:action:push-to-candidates', 'nightly': 'beetmover:action:push-to-nightly', 'nightly-larch': 'beetmover:action:push-to-nightly', 'nightly-pine': 'beetmover:action:push-to-nightly'})¶
确定来自config.params[‘target_tasks_method’]的受限范围。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
release_type_to_scope_map (dict) – 将发布类型映射到范围的映射
- 返回:
要使用的范围。
- 返回类型:
字符串
- gecko_taskgraph.util.scriptworker.get_beetmover_apt_repo_scope(config, *, alias_to_project_map=[['all-nightly-branches', {'comm-central', 'larch', 'mozilla-central', 'pine'}], ['all-release-branches', {'comm-beta', 'comm-esr115', 'comm-esr128', 'comm-release', 'mozilla-beta', 'mozilla-esr115', 'mozilla-esr128', 'mozilla-release'}]], alias_to_scope_map={'all-nightly-branches': 'beetmover:apt-repo:nightly', 'all-release-branches': 'beetmover:apt-repo:release', 'default': 'beetmover:apt-repo:dep'})¶
确定来自config.params[‘project’]的受限范围。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
alias_to_project_map (list of lists) – 每个列表对包含别名和匹配的项目集。这是有序的。
alias_to_scope_map (dict) – 别名到范围的映射
- 返回:
要使用的范围。
- 返回类型:
字符串
- gecko_taskgraph.util.scriptworker.get_beetmover_bucket_scope(config, *, alias_to_project_map=[['all-nightly-branches', {'comm-central', 'larch', 'mozilla-central', 'pine'}], ['all-release-branches', {'comm-beta', 'comm-esr115', 'comm-esr128', 'comm-release', 'mozilla-beta', 'mozilla-esr115', 'mozilla-esr128', 'mozilla-release'}]], alias_to_scope_map={'all-nightly-branches': 'beetmover:bucket:nightly', 'all-release-branches': 'beetmover:bucket:release', 'default': 'beetmover:bucket:dep'})¶
确定来自config.params[‘project’]的受限范围。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
alias_to_project_map (list of lists) – 每个列表对包含别名和匹配的项目集。这是有序的。
alias_to_scope_map (dict) – 别名到范围的映射
- 返回:
要使用的范围。
- 返回类型:
字符串
- gecko_taskgraph.util.scriptworker.get_beetmover_repo_action_scope(config, *, release_type_to_scope_map={'default': 'beetmover:action:import-from-gcs-to-artifact-registry'})¶
确定来自config.params[‘target_tasks_method’]的受限范围。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
release_type_to_scope_map (dict) – 将发布类型映射到范围的映射
- 返回:
要使用的范围。
- 返回类型:
字符串
- gecko_taskgraph.util.scriptworker.get_devedition_signing_cert_scope(config, *, alias_to_project_map=[['beta', {'mozilla-beta'}]], alias_to_scope_map={'beta': 'signing:cert:nightly-signing', 'default': 'signing:cert:dep-signing'})¶
确定来自config.params[‘project’]的受限范围。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
alias_to_project_map (list of lists) – 每个列表对包含别名和匹配的项目集。这是有序的。
alias_to_scope_map (dict) – 别名到范围的映射
- 返回:
要使用的范围。
- 返回类型:
字符串
- gecko_taskgraph.util.scriptworker.get_phase_from_target_method(config, alias_to_tasks_map, alias_to_phase_map)¶
确定来自config.params[‘target_tasks_method’]的阶段。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
alias_to_tasks_map (list of lists) – 每个列表对包含别名和匹配的目标方法集。这是有序的。
alias_to_phase_map (dict) – 别名到阶段的映射
- 返回:
要使用的阶段。
- 返回类型:
字符串
- gecko_taskgraph.util.scriptworker.get_release_config(config)¶
获取发布任务的构建编号和版本。
目前仅适用于beetmover任务。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
- 返回:
- 包含build_number和version。这可以用来
更新task.payload。
- 返回类型:
dict
- gecko_taskgraph.util.scriptworker.get_scope_from_project(config, alias_to_project_map, alias_to_scope_map)¶
确定来自config.params[‘project’]的受限范围。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
alias_to_project_map (list of lists) – 每个列表对包含别名和匹配的项目集。这是有序的。
alias_to_scope_map (dict) – 别名到范围的映射
- 返回:
要使用的范围。
- 返回类型:
字符串
- gecko_taskgraph.util.scriptworker.get_scope_from_release_type(config, release_type_to_scope_map)¶
确定来自config.params[‘target_tasks_method’]的受限范围。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
release_type_to_scope_map (dict) – 将发布类型映射到范围的映射
- 返回:
要使用的范围。
- 返回类型:
字符串
- gecko_taskgraph.util.scriptworker.get_signing_cert_scope(config, *, alias_to_project_map=[['all-nightly-branches', {'comm-central', 'larch', 'mozilla-central', 'pine'}], ['all-release-branches', {'comm-beta', 'comm-esr115', 'comm-esr128', 'comm-release', 'mozilla-beta', 'mozilla-esr115', 'mozilla-esr128', 'mozilla-release'}]], alias_to_scope_map={'all-nightly-branches': 'signing:cert:nightly-signing', 'all-release-branches': 'signing:cert:release-signing', 'default': 'signing:cert:dep-signing'})¶
确定来自config.params[‘project’]的受限范围。
- 参数:
config (TransformConfig) – 要转换的类型的配置。
alias_to_project_map (list of lists) – 每个列表对包含别名和匹配的项目集。这是有序的。
alias_to_scope_map (dict) – 别名到范围的映射
- 返回:
要使用的范围。
- 返回类型:
字符串
- gecko_taskgraph.util.scriptworker.get_signing_cert_scope_per_platform(build_platform, is_shippable, config)¶
- gecko_taskgraph.util.scriptworker.with_scope_prefix(f)¶
包装一个函数,在调用包装函数的结果上调用
add_scope_prefix()
。- 参数:
f (callable) – 一个函数,它接收一个
config
和一些关键字参数,并返回一个范围后缀。- 返回:
包装后的函数
- 返回类型:
callable
gecko_taskgraph.util.signed_artifacts 模块¶
定义在重新打包之前要签名的工件。
- gecko_taskgraph.util.signed_artifacts.generate_specifications_of_artifacts_to_sign(config, job, keep_locale_template=True, kind=None, dep_kind=None)¶
- gecko_taskgraph.util.signed_artifacts.get_geckoview_artifacts_to_sign(config, job)¶
- gecko_taskgraph.util.signed_artifacts.get_signed_artifacts(input, formats, behavior=None)¶
获取给定输入和格式的已签名工件列表。
- gecko_taskgraph.util.signed_artifacts.is_mac_signing_king(kind)¶
- gecko_taskgraph.util.signed_artifacts.is_notarization_kind(kind)¶
- gecko_taskgraph.util.signed_artifacts.is_partner_kind(kind)¶
gecko_taskgraph.util.taskcluster 模块¶
- gecko_taskgraph.util.taskcluster.find_task(index_path, use_proxy=False)¶
- gecko_taskgraph.util.taskcluster.insert_index(index_path, task_id, data=None, use_proxy=False)¶
- gecko_taskgraph.util.taskcluster.list_task_group_complete_tasks(task_group_id)¶
- gecko_taskgraph.util.taskcluster.list_task_group_incomplete_task_ids(task_group_id)¶
- gecko_taskgraph.util.taskcluster.list_task_group_tasks(task_group_id)¶
生成任务组中的任务
- gecko_taskgraph.util.taskcluster.state_task(task_id, use_proxy=False)¶
根据任务 ID 获取任务的状态。
在测试模式下,仅记录它将检索到的状态。这是
status_task()
返回的数据的子集。- 参数:
task_id (str) – 任务 ID。
use_proxy (bool) – 是否使用 taskcluster-proxy(默认值:False)
- 返回:
- 任务的状态,以下之一
pending, running, completed, failed, exception, unknown
.
- 返回类型:
str
- gecko_taskgraph.util.taskcluster.status_task(task_id, use_proxy=False)¶
根据任务 ID 获取任务的状态。
在测试模式下,仅记录它将检索到的状态。
- 参数:
task_id (str) – 任务 ID。
use_proxy (bool) – 是否使用 taskcluster-proxy(默认值:False)
- 返回:
- 返回类型:
dict
- gecko_taskgraph.util.taskcluster.trigger_hook(hook_group_id, hook_id, hook_payload)¶
gecko_taskgraph.util.taskgraph 模块¶
与现有任务图交互的工具。
- gecko_taskgraph.util.taskgraph.find_decision_task(parameters, graph_config)¶
给定此操作的参数,查找决策任务的 taskId。
- gecko_taskgraph.util.taskgraph.find_existing_tasks(previous_graph_ids)¶
- gecko_taskgraph.util.taskgraph.find_existing_tasks_from_previous_kinds(full_task_graph, previous_graph_ids, rebuild_kinds)¶
给定先前决策/操作任务 ID 列表和要忽略的先前图中的类型,返回一个标签到任务 ID 的字典,作为优化步骤中的
existing_tasks
使用。
gecko_taskgraph.util.verify 模块¶
- class gecko_taskgraph.util.verify.DocPaths(paths=NOTHING)¶
基类:
object
- add(path)¶
利用 Firefox 的任务图的项目可以通过注册其他文档路径来扩展它。项目的任务图注册函数需要调用 documentation_paths.add()。请参阅 taskgraph.config。
- get_files(filename)¶
- gecko_taskgraph.util.verify.verify_aliases(task, taskgraph, scratch_pad, graph_config, parameters)¶
此函数验证别名是否未重复使用。
- gecko_taskgraph.util.verify.verify_always_optimized(task, taskgraph, scratch_pad, graph_config, parameters)¶
此函数确保始终优化的任务已得到优化。
- gecko_taskgraph.util.verify.verify_attributes(task, taskgraph, scratch_pad, graph_config, parameters)¶
- gecko_taskgraph.util.verify.verify_dependency_tiers(task, taskgraph, scratch_pad, graph_config, parameters)¶
- gecko_taskgraph.util.verify.verify_docs(filename, identifiers, appearing_as)¶
在 documentation_paths.get_files() 返回的文件中查找 appearing_as 类型的标识符。Firefox 将在列表中拥有单个文件,但诸如 Thunderbird 之类的项目可以在另一个位置拥有文档,并且可能会返回多个文件。
- gecko_taskgraph.util.verify.verify_kinds_docs(kinds)¶
- gecko_taskgraph.util.verify.verify_parameters_docs(parameters)¶
- gecko_taskgraph.util.verify.verify_required_signoffs(task, taskgraph, scratch_pad, graph_config, parameters)¶
具有必需签核的任务不能是具有较少必需签核的任务的依赖项。
- gecko_taskgraph.util.verify.verify_routes_notification_filters(task, taskgraph, scratch_pad, graph_config, parameters)¶
此函数确保仅指定了已知的通知筛选器。
请参阅:https://firefox-ci-tc.services.mozilla.com/docs/manual/using/task-notifications
- gecko_taskgraph.util.verify.verify_run_known_projects(task, taskgraph, scratch_pad, graph_config, parameters)¶
验证 run-on-projects 中的输入。
我们绝不应该允许 'try'(或 'try-comm-central')出现在 run-on-projects 中,即使它有效,因为它不被视为 try 推送。同时,我们还验证其他未知项目或拼写错误。
- gecko_taskgraph.util.verify.verify_run_using()¶
- gecko_taskgraph.util.verify.verify_shippable_no_sccache(task, taskgraph, scratch_pad, graph_config, parameters)¶
- gecko_taskgraph.util.verify.verify_task_graph_symbol(task, taskgraph, scratch_pad, graph_config, parameters)¶
此函数验证元组 (collection.keys(), machine.platform, groupSymbol, symbol) 对目标任务图是否唯一。
- gecko_taskgraph.util.verify.verify_test_packaging(task, taskgraph, scratch_pad, graph_config, parameters)¶
- gecko_taskgraph.util.verify.verify_trust_domain_v2_routes(task, taskgraph, scratch_pad, graph_config, parameters)¶
此函数确保任何两个任务都具有不同的
index.{trust-domain}.v2
路由。
gecko_taskgraph.util.workertypes 模块¶
- gecko_taskgraph.util.workertypes.get_worker_type(graph_config, parameters, worker_type)¶
获取工作程序类型供应程序和工作程序类型,还可以根据图配置评估别名。
- gecko_taskgraph.util.workertypes.worker_type_implementation(graph_config, parameters, worker_type)¶
获取给定 workerType 的工作程序实现和操作系统,其中操作系统表示主机系统,而不是目标操作系统,在交叉编译的情况下。