Bazel のリモートビルド実行
Bazel ビルドのリモート実行により、ビルドアクションとテストアクションを複数のマシンに分散できます。これにより、ビルドとテストの実行がスピードアップし、開発チーム間でビルド出力を再利用できるようになり、
Bazel ビルドのリモート実行により、ビルドアクションとテストアクションを複数のマシンに分散できます。これにより、ビルドとテストの実行がスピードアップし、開発チーム間でビルド出力を再利用できるようになり、一貫した環境が実現します
Bitriseビルドキャッシュは、BitriseとBitrise CI以外の環境の両方で、リモートビルド実行で使用できます。
Bitrise でのリモートビルド実行の設定
ワークフローエディター
コンフィギュレーション YAML
-
Bazel 用ビットライズビルドキャッシュをセットアップ: Bitrise CI 環境での Bazel 用の Bitrise Build Cache の構成.
-
Bitriseにログインして選択してください ビットライズCI 左側でプロジェクトを選択します。
-
をクリックします ワークフロー メインページのボタン。
-
で Bazel 用ビットライズビルドキャッシュ ステップ 1、設定 ベゼル RBE を有効にする 入力フィールドに 。
-
設定 YAML ファイルを開きます。
-
を追加
activate-build-cache-for-bazel
ワークフローにステップアップ。your-workflow: steps: - git-clone: {} - activate-build-cache-for-bazel: inputs: - enable_rbe: true
Bitrise以外の環境でのリモートビルド実行の設定
その他の CI
ローカル環境
-
Bazel用のBitriseビルドキャッシュのセットアップを始めましょう: 非 Bitrise CI 環境での Bazel 用の Bitrise ビルド キャッシュの構成.
-
Bitrise ビルドキャッシュを有効にする際には、以下を追加してください。
--rbe
フラグ。/tmp/bin/bitrise-build-cache activate bazel --cache --cache-push=false --rbe
-
Bazel用のBitriseビルドキャッシュのセットアップを始めましょう: ローカル環境でのBazel用Bitriseビルドキャッシュの設定.
-
Bitrise ビルドキャッシュを有効にする際には、以下を追加してください。
--rbe
フラグ。/tmp/bin/bitrise-build-cache activate bazel --cache --cache-push=false --rbe
RBE エンドポイントの直接追加
ローカル開発環境でRBEを使用するには、CLIを使用せずにBazelにBitrise Accelerateサービスを直接向けることもできます。
--remote_executor=grpcs://bitrise-accelerate.services.bitrise.io:443
キープして--remote_cache=
Build Cache CLI が挿入する行:リモートで生成されたアーティファクトは自動的にそこに書き込まれます。
リモートビルド実行の推奨フラグ
Bazel には、リモートビルドの実行を最大限に活用するために必要なコマンドフラグが多数用意されています。
国旗 |
[説明] |
推奨値 |
---|---|---|
|
Bazel が一度に「実行中」に実行できるビルド/テストアクションの最大数を定義します。フラグを省略すると、Bazel はホスト VM 上の論理 CPU コアの数に自動的に戻ります。このデフォルトはローカルでの実行には適切ですが、RBE クラスターの使用率が非常に低くなります
|
--jobs=100 |
|
デフォルトの実行プラットフォーム (ワーカープール) を定義します。次のようなキーと値のペアを指定します |
MacOS: --remote_default_exec_properties=Arch=arm64 --remote_default_exec_properties=OSFamily=Darwin リナックス: --remote_default_exec_properties=Arch=amd64 --remote_default_exec_properties=OSFamily=Linux |
|
Bazel がアクションを実行しようとする順序を決定します。Bazel は、特定のアクションを実行できるストラテジーのリストの最初のストラテジーを使用します。デフォルト値は リモートを優先して、アクションがリモート実行環境で実行されるようにし、ローカル実行への正常なフォールバックを行います。 |
--spawn_strategy=remote,local |
|
ローカルで作成された出力の再アップロードをスキップします。リモートワーカーはすでにアーティファクトをキャッシュにプッシュしているので、帯域幅を節約できます。 この設定フラグはBitriseビルドキャッシュCLIでも設定できます。これを使用する場合は、このフラグを使用するときに CLI で--cache-push フラグが false かオフになっていることを確認してください |
--noremote_upload_local_results |
これらのフラグをあなたに追加することをお勧めします .bazelrc
ファイルと再利用:
MacOS:
build:remote --jobs=100 build:remote --noremote_upload_local_results build:remote --spawn_strategy=remote,local build:remote --remote_default_exec_properties=Arch=arm64 build:remote --remote_default_exec_properties=OSFamily=Darwin
リナックス:
build:remote --jobs=100 build:remote --noremote_upload_local_results build:remote --spawn_strategy=remote,local build:remote --remote_default_exec_properties=Arch=amd64 build:remote --remote_default_exec_properties=OSFamily=Linux