跳至內容

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 天。完整政策請參閱 資料保留。