# CI 状态查询脚本 `BUILD_VENUE=ci` 时,流水线状态由**项目脚本**查询。builder 只轮询这份脚本, 不在 skill 里猜 gh / glab / tea / curl。 ## 初始化 选 `ci` 后确认查询方式,再生成脚本: ```bash /scripts/init_ci_status.sh --root --kind tea|glab|gh|curl ``` 写出 `.pouch/builder/ci-status.sh`(可执行、进 git)。`makefile.builder` 写: ```makefile BUILD_VENUE ?= ci CI_STATUS_SCRIPT ?= .pouch/builder/ci-status.sh ``` 相对路径只能在 `.pouch/builder/` 下。凭据仍放 `.env.builder`(如 `GITEA_TOKEN`), 不要写进脚本参数或日志。 用户给了自定义命令时,把该命令写进同一份脚本,输出必须符合下方契约。 ## 调用 ```bash .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` 原样失败。