为新的配置启用 Firefox 测试

您已准备好为新的配置启用 Firefox 测试。到达此阶段后,您将看到一个尝试推送,其中所有测试都在运行(许多不是绿色的),以验证某些测试通过并且有足够的机器可用以运行测试。

出于本文档的目的,假设您的任务是将 Windows 10 操作系统从版本 1803 升级到 1903。为了简化起见,我们可以将其称为 windows_1903,我们需要

  • 创建元错误

  • 推送到 Try

  • 运行跳过失败

  • 重复 2 次

  • 合并更改并启用测试

  • 启用仅运行失败

如果您手动运行此操作或在 ./mach try –new-test-config 不支持的配置/测试上运行此操作,请按照此处的步骤操作

创建元错误

这是一个简单的步骤,您可以在其中创建一个元错误来跟踪与您正在变为绿色的测试相关的故障。如果这是一个测试套件(即 devtools),则仅为测试套件和新平台创建一个元错误是可以的。

与跳过或失败的测试相关的所有错误都将阻止此元错误。

推送到 Try 服务器

现在您已设置好配置并通过 Try 服务器获得了机器,是时候运行 Try 了。如果您正在迁移 mochitest 或 xpcshell,则可以执行以下操作

./mach try fuzzy --no-artifact --full --rebuild 10 --new-test-config -q 'test-windows10-64-1903 mochitest-browser-chrome !ccov !ship !browsertime !talos !asan'

这将运行许多测试(感谢 –full 和 –rebuild 10),但会提供大量有用的数据。

在您迁移以下测试的场景中
  • 性能

  • web-platform-tests

  • reftest / crashtest / jsreftest

  • mochitest-webgl(具有不同的测试跳过过程)

  • cppunittest / gtest / junit

  • marionette / firefox-ui / telemetry

然后请按照此处的步骤操作

如果您迁移到一个小型机器池,最好避免使用 –rebuild 10,而是使用 –rebuild 3。同样,请将您的作业限制为特定的测试套件和变体。工作池的大小显示在 Taskcluster 实例的“工作者”页面上。

运行跳过失败

尝试推送完成后,是时候运行跳过失败了。跳过失败将查看所有测试结果并自动创建一组包含跳过条件的本地更改,以更快地使测试变为绿色。

./mach manifest skip-fails --b bugzilla.mozilla.org -m <meta_bug_id> --turbo "https://treeherder.mozilla.org/jobs?repo=try&revision=<rev>"

请在上述命令中输入正确的 meta_bug_idrev

第一次运行此命令时,您需要获取Bugzilla API 密钥。复制此密钥并将其添加到您的 ~/.config/python-bugzilla/bugzilla-rc 文件中

cat bugzillarc
[DEFAULT]
url = https://bugzilla.mozilla.org
[bugzilla.mozilla.org]
api_key = <key>

命令完成后,您将创建新的错误,这些错误会阻止元错误。此外,您还将对清单进行许多更改,以添加跳过条件。对于 40% 的时间失败的测试或在 opt 上运行时间超过 20 分钟或在调试模式下运行时间超过 40 分钟的整个清单。

您需要创建一个提交(或如果这是第 2 轮或第 3 轮,则 –amend 您之前的提交)

hg commit -m "Bug <meta_bug_id> - 使 <suite> 上的 <platform> 测试 变为 绿色"

重复 2 次

在 3 轮后,这应该就完成了,并准备好提交以供审查并启用新的测试。

将会有其他故障,这些故障将遵循间歇性故障的正常流程。

合并更改并启用测试

在您获得绿色测试运行后,是时候合并补丁了。可能需要对 Taskgraph 进行更改,以便添加新的硬件类型并复制测试以在旧版本和新版本上运行,或者创建新的变体并指示哪些测试应在此变体上运行。

使用我们的 windows_1903 示例,这将是一种新的工作者类型,需要进行以下编辑

  • transforms/tests.py(复制 Windows 10 条目)

  • test-platforms.py(复制 windows10 debug/opt/shippable/asan 条目并创建 win10_1903)

  • test-sets.py(理想情况下您不需要任何操作,否则复制 windows-tests 并编辑测试列表)

通常,这应该允许您在 Try 服务器上没有自定义标志的情况下安排测试,并且所有这些都将在 mozilla-centralautolandrelease-branches 上默认安排。

启用仅运行失败

现在我们定期运行测试,下一步是获取所有禁用的测试并在特殊的失败作业中运行它们。

我们创建了一个基本框架,但对于每个测试工具(例如 xpcshell、mochitest-gpu、browser-chrome、devtools、web-platform-tests、crashtest 等),都需要创建一个相应的第 3 层作业。

待办事项:在我们第一个作业运行后,指向如何添加此作业的示例。