推送到 Try¶
“推送到 Try”允许开发人员在 Mozilla 的自动化服务器上构建和测试他们的更改,而无需对其代码进行审查和合并。
首先,确保您可以推送到 Try。Try 知道如何运行树中定义的任务,例如 build-linux64/opt
(为 Linux 构建 Firefox)。要手动为 Try 选择一些任务进行处理,请运行以下命令
./mach try fuzzy
提交您请求的任务后,您将获得 Treeherder 中“推送”的链接。您的推送可能需要几分钟才能出现在 Treeherder 中!请耐心等待,当 Try 开始处理您的工作时,它会自动更新。
另一个非常有用的 Try 命令是 ./mach try auto
,它将自动选择最有可能受您的更改影响的任务。请参阅 选择器页面 以查看选择要推送的任务的所有其他方法。
可以设置环境变量,特别是 MOZ_LOG,当推送到 try 时
./mach try fuzzy --env MOZ_LOG=cubeb:4
解决“<Try 构建> 已损坏且无法打开”错误¶
要在 macOS 上运行 Try 构建,您需要绕过 Apple 对下载应用程序的限制。
这些限制因您的硬件而异:Apple 硅芯片机器(M1 等)的限制要严格得多。
对于 Apple 硅芯片机器,您需要从“repackage-macosx64-shippable/opt”作业下载 target.dmg 工件。这是一个通用构建(即它包含 x86_64 和 arm64 代码),并且已签名但未经公证。您可以使用 ./mach try fuzzy --full
触发此作业。
在英特尔 Mac 上,您可以运行未签名的构建,一旦您绕过隔离(请参见下文),因此您可以只从常规 opt 构建中下载“target.dmg”。
无论硬件如何,您都需要确保在尝试运行下载的 dmg 文件之前,它没有任何隔离属性:Apple 会自动隔离从不受信任的位置使用浏览器下载的应用程序。可以通过在下载后执行 xattr -c <Try build>
来清除此“隔离状态”。您可以通过从命令行下载构建来避免此“隔离状态”,例如使用 curl
curl -L <artifact-url> -o <file-name>
Try 构建的分析器符号¶
在分析 tryserver 构建时,默认情况下您不会获得符号。您必须在 Try 推送上触发额外的 upload-symbols 作业,以便符号在符号服务器上可用。
您可以使用“添加新作业(搜索)…”在 Treeherder UI 中手动触发此作业。
假设您想要分析“shippable”构建(推荐),请按照以下步骤操作
在 Treeherder 推送上,点击右上角的下拉三角形。
选择“添加新作业(搜索)…”
在搜索框中输入“shippable sym”并按 Enter 键。
重要:选中“使用完整作业列表”复选框。
选择 Try 构建的作业。对于 Windows 64 位构建,作业名称为
build-win64-shippable/opt-upload-symbols
(这写于 2024 年 2 月)。点击“添加所选”,向下滚动,然后点击“触发 (1) 所选作业”。
大约十分钟后,符号将在符号服务器上可用,并且配置文件符号化将成功。
对于其他构建类型,选择与您的构建类型对应的作业。作业名称都以 -upload-symbols
结尾,并且与构建作业共享前缀。
如果您在符号可用之前已经从 Try 构建中捕获了配置文件,则可以在符号可用后修复收集的配置文件。为此,在 Firefox Profiler UI 中,点击右上角的“配置文件信息”按钮,然后点击面板中的“重新符号化配置文件”按钮。
如果您想在推送到 Try 时触发 upload-symbol 作业,则可以在运行 ./mach try fuzzy --full
时在列表中选择它 - --full
部分是必需的。-upload-symbols
任务依赖于构建任务,因此如果您这样做,则不必单独触发构建任务。
将 Try 作业添加到 Phabricator 修补程序¶
对于在 Phabricator 中提交以供审查的每个修补程序,都会自动创建一个新的 Try 运行。名为 Treeherder Jobs
的链接可以在 Phabricator 中审查的 Diff Detail
部分中找到。
此运行是为静态分析、代码风格检查和其他任务创建的。将新作业附加到运行非常简单,并且不需要开发人员执行更多操作。点击向下箭头以访问操作菜单,选择相关的作业,然后点击 Trigger X new jobs
(位于作业顶部)。