mcpField
R
remote-run

remote-run

github.com/buildbuddy-io云与 DevOps79858 次安装今天更新
代码仓库

关于 remote-run

remote-run 是一项使用 BuildBuddy `bb remote` 在远程运行器执行 Bazel 和其他高开销命令的技能,涵盖命令替换、运行器配置、标志持久化与失败处理。

主要功能

  1. 01远程运行 Bazel 命令
  2. 02用 `--script` 运行 Shell 命令
  3. 03配置运行器系统与架构
  4. 04持久化用户确认的标志
  5. 05处理远程运行失败

适用场景

  1. 01在远程运行器执行构建和测试
  2. 02将高开销 Shell 命令移出本地机器
  3. 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 文件中时,都要在运行命令前遵循以下流程:

  1. 询问:Do you want me to persist <FLAG> in this SKILL file so it is automatically applied to all future remote runs?
  2. 等待用户明确确认后再编辑此文件。
  3. 请用户通过示例确认标志的语法。
  4. 如果用户确认,只编辑 persistent-flags.md 文件。
  5. 确保该标志尚未存在。
  6. 保持按字母顺序排列。
  7. 为每个标志添加一条示例命令。

条目格式:

  • --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 的有效值为: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 进行安装。

评论

支持 Markdown