cnb-rs build watch
cnb-rs build watch <sn> [--interval <SECS>] [--max-wait <SECS>] [--exit-status]
cnb-rs run watch <sn> # 命令组 aliasPolling 构建状态直到进入终态(success / error / failed / cancel / cancelled / canceled)。 对齐 gh run watch。
适合在 CI 脚本里等待某次构建完成后再走后续步骤,或本地终端实时观察远程构建进度。
选项
<sn>:构建号(必填)-i, --interval <SECS>:Polling 间隔(秒),默认5--max-wait <SECS>:最大等待时长(秒),默认7200(2 小时)--exit-status:终态时按构建结果决定退出码success→ 退出码 0- 其他终态 → 退出码 1
- 对齐
gh run watch --exit-status
继承的全局选项:
--repo <REPO>:指定仓库路径(格式:group/repo)--json:以 JSON 格式输出每次 poll snapshot(适合脚本流式消费)--domain <DOMAIN>:指定目标域名(默认:cnb.cool)
与 gh 的差异
- gh
run watch输出每条 job 的实时进度(基于 GitHub Actions 流式日志) - CNB 端没有公开的流式日志 API,watch 只能轮询
get_build_status,所以只刷新「总状态 + 已等时长」,不能逐 step 显示 - 想看流水线 / stage 分段进度,可在 watch 之外手动用
cnb-rs build status <sn>查看一次完整快照
示例
bash
# 等待构建完成(每 5 秒 poll 一次,最长等 2 小时)
$ cnb-rs build watch cnb-1qa-1i3f5ecau
Watching cnb-1qa-1i3f5ecau (interval=5s, max-wait=7200s)
▶ cnb-1qa-1i3f5ecau pending (已等 10s)
▶ cnb-1qa-1i3f5ecau running (已等 1m 25s)
✓ 构建 cnb-1qa-1i3f5ecau 已结束: success (总耗时 12m 03s)
# 1 秒高频 poll、最长 5 分钟
$ cnb-rs build watch cnb-1qa-1i3f5ecau -i 1 --max-wait 300
# CI 脚本:用 exit-status 决定 pipeline 是否继续
$ cnb-rs build watch cnb-1qa-1i3f5ecau --exit-status && deploy.sh
# JSON 流式输出供脚本消费
$ cnb-rs build watch cnb-1qa-1i3f5ecau --json
{"elapsed_ms":1,"sn":"cnb-1qa-1i3f5ecau","status":"pending"}
{"elapsed_ms":5023,"sn":"cnb-1qa-1i3f5ecau","status":"running"}
{"elapsed_ms":723451,"sn":"cnb-1qa-1i3f5ecau","status":"success"}行为细节
- 终态匹配 大小写无关:
Success/SUCCESS/success都识别为同一终态 - 超时退出 (
elapsed > --max-wait):以非零退出码 bail「等待超时」 - 网络错误:单次
get_build_status失败直接 bail(不重试),便于上层脚本快速感知 - interval < 1:自动按 1 秒处理,防止打爆服务端
另请参阅
- cnb-rs build
- cnb-rs build status — 完整状态快照
- cnb-rs build rerun — 重跑历史构建
- gh run watch — 对齐参考