bazel-build-optimization は何をしますか?
大規模モノレポ向けに Bazel ビルドを最適化します。Bazel の設定、リモート実行の導入、エンタープライズコードベースのビルドパフォーマンス最適化時に使用します。
使用目的
- Bazel ビルドの設定とパフォーマンスチューニング
- リモート実行とキャッシュの実装支援
- ビルドグラフの分析によるボトルネック特定
- 大規模モノレポにおける依存関係管理の最適化
主な機能
.bazelrcの最適化: ホストマシンとリモート実行環境の両方に適したビルドフラグの設定を提案します。- リモート実行の設定:
--remote_executorや--remote_cacheオプションの設定、TLS 認証、リソース制限などをガイドします。 - ビルドグラフ分析:
bazel queryやbazel aqueryコマンドを使用して依存関係グラフを分析し、不要な再ビルドを削減します。 - キャッシュ戦略: リモートキャッシュの設定、アクションキャッシュのヒット率向上、ネットワーク遅延の最小化を支援します。
- ターゲット粒度の調整: 適切なターゲット分割と
cc_binary/java_binaryルールの利用を促進し、インクリメンタルビルドを高速化します。
使用方法
このスキルは .claude/skills/ ディレクトリに配置されます。以下のようにしてスキルを有効化します。
- リポジトリのルートに
.claude/skills/ディレクトリを作成します(存在しない場合)。 - この
SKILL.mdファイルをそのディレクトリに配置します。 - Claude Code などの AI エージェントは、このスキルを自動的に検出し、Bazel 関連のクエリに対して最適化されたアドバイスを提供します。
設定例
# .bazelrc でのリモート実行設定例
build --remote_executor=grpcs://remote-executor.example.com:443
build --remote_cache=grpcs://remote-cache.example.com:443
build --remote_timeout=3600
build --jobs=HOST_CPUS*0.5
トラブルシューティング
- ビルドが遅い: ターゲットの分割やクエリを使用した依存関係の分析を試みます。
- リモート実行が失敗する: 認証設定とネットワーク接続を確認します。
- キャッシュヒット率が低い: アクションのハッシュ化に影響を与える環境変数を統一します。