Files
.pouch/skills/builder/references/ci-status.md
T
laily 9ba9b3da0f feat(builder): query CI via project status script
When BUILD_VENUE=ci, init confirms tea/glab/gh/curl (or a custom
command) and writes .pouch/builder/ci-status.sh. wait_ci.sh only
polls that script and no longer guesses forge CLIs.
2026-10-15 09:56:51 +08:00

1.6 KiB
Raw Blame History

CI 状态查询脚本

BUILD_VENUE=ci 时,流水线状态由项目脚本查询。builder 只轮询这份脚本, 不在 skill 里猜 gh / glab / tea / curl。

初始化

选 ci 后确认查询方式,再生成脚本:

<skill-dir>/scripts/init_ci_status.sh --root <project> --kind tea|glab|gh|curl

写出 .pouch/builder/ci-status.sh(可执行、进 git)。makefile.builder 写:

BUILD_VENUE ?= ci
CI_STATUS_SCRIPT ?= .pouch/builder/ci-status.sh

相对路径只能在 .pouch/builder/ 下。凭据仍放 .env.builder(如 GITEA_TOKEN), 不要写进脚本参数或日志。

用户给了自定义命令时,把该命令写进同一份脚本,输出必须符合下方契约。

调用

.pouch/builder/ci-status.sh --sha <40-character-sha>

只查询、不触发流水线。BUILDER_PROJECT_ROOT 是项目根。

输出

退出 0 且 stdout 含 STATUS= 键值(可多行或同一行):

STATUS 含义
empty 该 SHA 还没有流水线
running 已出现、尚未结束
success 该 SHA 的流水线成功
failed 失败、取消或超时
error 查询本身失败(鉴权、CLI 缺失)

可选:ID=、PIPELINE=(URL)、JOBS=。

退出码 含义
0 已查出状态(含 empty/running/failed)
2 用法错误
3 无法查询(缺 CLI、未登录、被拒绝)

wait_ci.sh 按这份输出轮询:empty 超过出现窗口记 no_pipeline; success 才继续 obtain;failed 原样失败。