SuperAPI AI 工具集

remote-run

部署与运维

查看项目

更新于 10-15 20:09

技能介绍

用途:把原本在本地执行的 bazel 命令改为在远程 runner 上运行,适合构建、测试、运行目标以及本地开销较大的命令。

主要能力:bb remote 是 bazel 的直接替代,例如 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。非 bazel 命令可用 --script,例如 bb remote --script="echo HELLO!"。远程 runner 算力更强,工作区在运行间做快照以加速后续运行,并上传本地 git diff。

配置:用 --os(linux、darwin)和 --arch(amd64、arm64)指定系统与架构,默认匹配本地架构;用 --container_image=docker://<URL> 指定镜像;用 --runner_exec_properties=salt=<VALUE> 获取干净 runner,若希望后续运行沿用需保留该标志。资源方面可用 --runner_exec_properties=EstimatedCPU=X、EstimatedFreeDiskBytes=XGB、EstimatedMemory=XGB,但除非日志明确出现 OOM 或磁盘耗尽,建议使用默认值。

标志持久化:当用户提供 persistent-flags.md 中不存在的标志时,先询问是否持久化到该 SKILL 文件,等待明确确认,并让用户用示例确认语法;确认后只编辑 persistent-flags.md,确保标志不重复、保持字母顺序、每个标志附一条示例命令,格式如 --flag=value: Example: bb remote build :target --flag=value。

失败与认证:失败时警告用户并打印远程运行的 invocation URL,该 URL 位于日志顶部,形如 Streaming remote runner logs to: https://app.buildbuddy.io/invocation/...。未授权时提示用户运行 bb login 并按 UI 流程操作,不要自行运行 bb login;API key 存于 .git/config 的 [buildbuddy] api-key 下,非交互模式可存为 secret 并用 --remote_header=x-buildbuddy-api-key=<API_KEY_HERE> 传入。

前置条件:未安装 bb 时可用 curl -fsSL https://install.buildbuddy.io | bash 安装。遇到不清楚的任务应查阅 https://www.buildbuddy.io/docs/remote-bazel,不要运行 bb remote --help 或 bb help。