跳至內容

Bazel 構建洞察

每個已完成的 build、test 及其他 Bazel 指令都會顯示在專案的 Invocations 儀表板上:包括指令類型、退出狀態、開始和結束時間、持續時間,以及 Bazel 歸因於該次調用的快取命中、未命中、下載和上傳。

調用數據透過 Bazel 的 Build Event Protocol 傳送。當你執行 tuist bazel setup 時,設定會自動為你連接;無需額外旗標即可開始查看調用。

儀表板顯示內容#

每次調用會記錄:

  • Bazel 執行的指令、其退出代碼、開始和結束時間,以及總持續時間。
  • 動作、目標和套件數量。
  • 有限的構建時間軸和關鍵路徑摘要。
  • 歸因於該次調用的快取命中、未命中、下載和上傳。
  • 執行期間按順序捕獲的進度日誌行。
  • Bazel 版本、git 分支和提交(當 Bazel 報告時),以及運行是否發生在 CI 上。

Bazel 無法歸因於已完成調用的快取活動(例如指令在中途被中斷),仍會以原始遠端快取觀察的形式出現在專案 Overview 上。這不被視為指令成功、持續時間或測試結果的證據。

自訂元數據#

將鍵值數據附加到調用以比較來自不同團隊、硬體或工作流程的運行。這些值會顯示在每次調用的詳細頁面,並可透過應用程式介面和 Model Context Protocol 工具存取。

使用 Bazel 內建的 --build_metadata 旗標設定元數據:

bash
bazel build --build_metadata=TICKET=TUIST-123 --build_metadata=RUNNER=macos-14 //...

或在你的 .bazelrc 中為每個 lane 設定一次:

plaintext
build:ci --build_metadata=RUNNER=macos-14

每次調用最多可攜帶 20 個自訂條目。鍵最多可包含 50 個字符,值最多可包含 500 個字符。超出這些限制的條目會在儲存調用前被丟棄,因此無效條目不會阻止其餘報告被記錄。

Tuist 從構建環境衍生的上下文鍵(例如 CI、GIT_BRANCH 和 GIT_COMMIT)不會作為自訂值儲存,因為它們已填充調用的首要欄位。

自訂元數據對專案成員在儀表板、應用程式介面和 Model Context Protocol 工具中可見。請勿將其用於憑證、存取權杖或其他敏感數據。

選擇退出#

Build Event Protocol 串流攜帶命令行參數、環境值和指令輸出。Tuist 僅保留上述已完結指令的欄位並丟棄其餘部分,但如果你完全不想發送事件串流,請重新執行設定:

bash
tuist bazel setup --no-build-insights

生成的 .bazelrc.tuist 隨後僅設定遠端快取。調用將不再顯示在儀表板上,而快取觀察仍保留在 Overview 頁面。

數據保留#

Tuist 保留 Bazel 調用及其日誌 90 天。請參閱 數據保留 了解完整政策。