remote-run について
remote-runは、BuildBuddyの`bb remote`でBazelや負荷の高いコマンドをリモートランナーで実行するスキルです。コマンドの置き換え、ランナー設定、フラグの永続化、失敗時の対応を扱います。
主な機能
- 01Bazelコマンドのリモート実行
- 02`--script`によるシェルコマンド実行
- 03ランナーのOSとアーキテクチャ設定
- 04確認済みフラグの永続化
- 05リモート実行の失敗対応
活用シーン
- 01リモートランナーでビルドやテストを実行
- 02負荷の高いシェル処理をローカル外で実行
- 03複数回の実行でランナー状態を保持
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ buildbuddy-io/ buildbuddy --skill remote-runインストール後、Claude Code で/remote-runを入力して読み込まれたか確認します。
同梱ファイルpersistent-flags.md
詳細
bb remote はリモートランナーでコマンドを実行します。これらのランナーはより高い計算能力を備えている場合があり、実行のたびにワークスペースがスナップショットされるため、以降の実行が高速化されます。
また、ローカルの git 差分もリモートランナーにアップロードします。
ヘルプの参照
タスクの実行方法がわからない場合は、https://www.buildbuddy.io/docs/remote-bazel のドキュメントを参照してください。bb remote --help や bb help は実行しないでください。
実行前の確認
bb remote コマンドを実行する前に、コマンドにフラグを追加するようユーザーから依頼されたか確認してください(Remote Bazel または bazel の設定に関するものです)。
依頼されていた場合は、以下のフラグの永続化手順に従ってください。
bazel の置き換え
bazel を使ってローカルで bazel コマンドを実行する代わりに、bb remote コマンドを使ってリモートランナーで実行してください。
たとえば、コマンド bazel build :target は bb remote build :target に置き換えてください。
bazel run :target は bb remote run :target に置き換えてください。
bazel のスタートアップフラグとオプションはすべてそのまま引き継いでください。
bazel --output_base=X test :target --config=Y は bb remote --output_base=X test :target --config=Y にしてください。
フラグの永続化
ユーザーから指定されたフラグが persistent-flags.md ファイルにまだ記載されていない場合、コマンドを実行する前に次の手順に従ってください。
Do you want me to persist <FLAG> in this SKILL file so it is automatically applied to all future remote runs?と質問します。- ファイルを編集する前に、明示的な確認を待ちます。
- フラグの構文を例で示し、ユーザーに確認を求めます。
- ユーザーが確認した場合は、persistent-flags.md ファイルのみを編集します。
- フラグがすでに記載されていないことを確認します。
- アルファベット順を維持します。
- フラグごとにコマンド例を1つ追加します。
記載形式:
--flag=value:例:bb remote build :target --flag=value
bash コマンドをリモートで実行
ローカルでの実行にコストがかかるコマンドも、bb remote を使って実行できます。bazel 以外のコマンドは、
--script を指定して実行できます。
たとえば、bb remote --script="echo HELLO!" を実行できます。
失敗時
失敗した場合は、ユーザーに警告し、リモート実行の呼び出し URL を表示してください。この URL はログの先頭にあり、
次のような形式です。
Streaming remote runner logs to: https://app.buildbuddy.io/invocation/d70a1719-4cb6-4568-a19e-9b6f8e2b3ec3
設定
--os と --arch フラグで、リモートランナーの OS とアーキテクチャを設定できます。
os の有効な値は linux と darwin です。
arch の有効な値は amd64 と arm64 です。
デフォルトでは、リモートランナーはローカルのアーキテクチャに合わせられます。
--container_image=docker://<URL> で、リモートランナーのイメージを設定できます。
リモートランナーが破損していて新しいものを使いたい場合は、--runner_exec_properties=salt=<VALUE> を設定できます。この新しいランナーから今後の実行を再開したい場合は、このフラグを保持してください。
リソースの追加要求
絶対に必要な場合を除き、これらの設定は行わず、デフォルト値を使用することを強く推奨します。ログに OOM エラーまたはディスク容量の枯渇が明示的に報告されている場合にのみ、リソースの増加を提案してください。
--runner_exec_properties=EstimatedCPU=X、--runner_exec_properties=EstimatedFreeDiskBytes=XGB および EstimatedMemory=XGB を指定すると、リモートランナーに追加のリソースを要求できます。
認証
リクエストが認証されない場合は、ユーザーに bb login を実行し、UI のログイン手順に従うよう伝えてください。手動の手順が必要なため、bb login を自分で実行しないでください。
API キーは、次の場所にある .git/config に保存されます。
[buildbuddy]
api-key = <API_KEY_HERE>
非対話モードで実行する場合、ユーザーは API キーをシークレットとして保存する必要があります。キーは --remote_header=x-buildbuddy-api-key=<API_KEY_HERE> で渡せます。
前提条件
bb がインストールされていない場合は、curl -fsSL https://install.buildbuddy.io | bash でインストールできます。