コンテンツへスキップ

Bazel キャッシュ

Tuist は、Bazel がリモートキャッシュとして接続する Remote Execution API キャッシュを公開しています。アクションの出力がすでにキャッシュに存在する場合、Bazel はそのアクションをスキップし、Tuist のキャッシュから結果を取得します。これにより、チーム全体および CI 環境でのコンパイル時間を短縮できます。

セットアップ#

Bazel ワークスペースのルートで次を実行してください:

bash
tuist bazel setup

これにより、.bazelrc.tuist ファイルが .bazelrc の隣に作成され、最も近い Tuist キャッシュリージョンに接続され、ワークスペースごとの認証情報ヘルパーを通じて認証されます。また、リポジトリの .bazelrc に try-import 行を追加します:

plaintext
try-import %workspace%/.bazelrc.tuist

インポートを自分で管理したい場合は、--no-add-bazelrc-import を指定してください。

.bazelrc.tuist を .gitignore に追加し、コミットする代わりに各マシンでセットアップを実行してください。生成されたファイルは、現在のユーザーの Tuist 設定ディレクトリ下の絶対的な認証情報ヘルパーのパスと、それを生成したマシンに最も近いキャッシュリージョンを指すため、これらの値はチームメイトや継続的インテグレーションランナーには引き継がれません。すべてのマシンで同じである .bazelrc 内の try-import 行をコミットしてください。

セットアップは、Bazel ワークスペースのマーカーが見つからない場合、ファイルがシンボリックリンクの場合、またはすでにリモートキャッシュや Build Event Service が構成されている場合は、既存の .bazelrc に変更を加えません。そのため、再度実行しても冪等性が保たれます。

統合を検証するために、通常の Bazel コマンドを実行してください:

bash
bazel build //...

キャッシュアクティビティは、Tuist ダッシュボードのプロジェクトの Bazel Cache ページに表示され、キャッシュ転送、ダウンロードとアップロード、読み書きレイテンシ、スループット、およびアクションキャッシュヒット率を示します。プロジェクトの Overview には、ビルド時間とともに同じアクションキャッシュヒット率の概要が表示されます。

特定のコマンドがキャッシュをどのように使用したかを確認するには、Invocations から開いてください。呼び出しページでは、アクションキャッシュのルックアップとコンテンツオブジェクトのリクエストが区別されているため、コールドなアクションキャッシュと遅いアーティファクトのダウンロードを区別できます。

ビルドインサイト#

デフォルトでは、tuist bazel setup によって Bazel の Build Event Service も構成されるため、完了したコマンドが Invocations ダッシュボードに表示されます。ダッシュボードに表示される内容やカスタムメタデータの添付方法については、Bazel ビルドインサイト を参照してください。

リモートキャッシュのみを使用し、ビルドイベントストリームを送信したくない場合は、次のようにしてオプトアウトしてください:

bash
tuist bazel setup --no-build-insights

継続的インテグレーション#

認証ガイド のいずれかの方法を使用して CI を認証し、チェックアウトステップの一部として tuist bazel setup を一度実行して、.bazelrc.tuist がランナーに適したリージョンを反映するようにしてください。プロバイダー固有の例については、継続的インテグレーションガイド を参照してください。

データ保持#

Tuist はリモートキャッシュの観測データを 90 日間保持します。完全なポリシーについては、データ保持 を参照してください。