SuperAPI AI 工具集

local-ci

部署与运维

查看项目

更新于 10-16 02:56

技能介绍

Local CI 用于在推送代码之前,在本地运行完整的 CI 流水线。其核心理念是:在你开始改动之前 CI 是绿色的,因此任何失败都由你的改动引起。

用途 在本地验证代码改动,避免为了触发远程 CI 而反复推送。当需要测试、运行检查或验证代码改动时使用。

运行方式 使用以下命令运行完整 CI:

npx run-local-ci run --quiet --all --pause-on-failure

管道是安全的——pause-on-failure 在通过 | tee log、> log.txt 等重定向时仍然有效。当 stdout 不是 TTY 时,启动器会分离运行,前台进程会在某个步骤暂停的瞬间以退出码 77 退出,从而释放管道,同时容器保持暂停状态以便重试。

重试 当某个步骤失败时,运行会自动暂停。修复问题后重试:

npx run-local-ci retry --name <runner-name>

若要从更早的步骤重新运行:

npx run-local-ci retry --name <runner-name> --from-step <N>

重复此过程直到所有作业通过。当 local-ci 可以在本地运行时,不要通过推送来触发远程 CI。

机器可读输出(--json) 用于程序化监控时,添加 --json(或设置 LOCAL_CI_JSON=1)会在 stdout 上输出 NDJSON 事件流——每行一个 JSON 对象。事件包括:

  • run.start(带 schemaVersion: 1、runId)
  • job.start、job.finish(status: passed|failed)
  • step.start、step.finish(status: passed|failed|skipped)
  • run.paused(携带 runner + retry_cmd)
  • run.finish(status: passed|failed)
  • diagnostic

--json 与 --quiet 解耦,并且在 --json 下会自动抑制 diff 渲染器,以免 ANSI 序列与事件流冲突。结合上述退出码 77 的暂停信号,这为智能体提供了稳健的契约:解析 run.paused 事件、做出反应并调用 retry——无需纯文本 grep。

适用场景 适用于需要在推送前本地验证 CI 的开发者,以及需要以程序化方式监控 CI 运行状态的自动化智能体。

限制 资料未提供关于支持的操作系统、依赖环境、收费方式或价格等信息。