Bazel 构建洞察
每次完成的 build、test 及其他 Bazel 命令都会显示在项目的 调用 仪表板上:包括命令类型、退出状态、开始和结束时间、持续时间,以及 Bazel 归因于该次调用的缓存命中、未命中、下载和上传。
调用数据通过 Bazel 的 Build Event Protocol 传输。当你运行 tuist bazel setup 时,设置会自动为你连接;无需额外标志即可开始查看调用。
仪表板显示内容#
每次调用记录:
- Bazel 运行的命令、其退出代码、开始和结束时间,以及总持续时间。
- 操作、目标和包的数量。
- 有限的构建时间线和关键路径摘要。
- 归因于该调用的缓存命中、未命中、下载和上传。
- 按执行顺序捕获的运行期间进度日志行。
- Bazel 版本、git 分支和提交(当 Bazel 报告时),以及运行是否发生在 CI 上。
Bazel 无法归因于已完成调用的缓存活动(例如命令在运行中途被中断)仍会作为原始远程缓存观察出现在项目 概览 中。它不被视为命令成功、持续时间或测试结果的证据。
自定义元数据#
将键值数据附加到调用中,以比较来自不同团队、硬件或工作流的运行。值显示在每次调用的详细信息页面上,并通过应用程序编程接口和 Model Context Protocol 工具提供。
使用 Bazel 内置的 --build_metadata 标志设置元数据:
bazel build --build_metadata=TICKET=TUIST-123 --build_metadata=RUNNER=macos-14 //...
或在你的 .bazelrc 中为每个通道设置一次:
build:ci --build_metadata=RUNNER=macos-14
每次调用最多可携带 20 个自定义条目。键最多包含 50 个字符,值最多包含 500 个字符。超出这些限制的条目会在存储调用之前被丢弃,因此无效条目不会阻止报告的其余部分被记录。
Tuist 从构建环境中派生的上下文键(如 CI、GIT_BRANCH 和 GIT_COMMIT)不作为自定义值存储,因为它们已填充到调用的首要字段中。
自定义元数据对项目成员在仪表板中可见,并通过应用程序编程接口和 Model Context Protocol 工具提供。不要将其用于凭据、访问令牌或其他敏感数据。
选择退出#
Build Event Protocol 流携带命令行参数、环境变量值和命令输出。Tuist 仅保留上述列出的已完成命令字段并丢弃其余部分,但如果你根本不想发送事件流,请使用以下命令重新运行设置:
tuist bazel setup --no-build-insights
生成的 .bazelrc.tuist 随后仅配置远程缓存。调用将不再显示在仪表板上,缓存观察仍保留在 概览 页面上。
数据保留#
Tuist 保留 Bazel 调用及其日志 90 天。有关完整政策,请参阅 数据保留。