mcpField
L
local-ci

local-ci

github.com/redwoodjs测试与质量81068 次安装7 周前更新
代码仓库

关于 local-ci

Local CI 是一个用于在推送前本地运行完整 CI 流水线的命令行工具。它支持失败时暂停并从指定步骤重试,也可输出供程序或 Agent 监控的 NDJSON 事件流。

主要功能

  1. 01本地运行完整 CI 流水线
  2. 02失败时自动暂停
  3. 03从失败或指定步骤重试
  4. 04输出 NDJSON 事件流
  5. 05提供结构化运行状态

适用场景

  1. 01推送前检查代码变更
  2. 02修复失败步骤后继续运行
  3. 03让 Agent 监控 CI 进度

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/redwoodjs/local-ci --skill local-ci

安装后在 Claude Code 中输入/local-ci确认已加载。

详细介绍

本地 CI

推送前,请在本地运行完整的 CI 流水线。开始前 CI 已通过,任何失败都由你的更改导致。

运行

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

管道安全可靠——暂停时,失败机制在 | tee log、> log.txt 等情况下同样有效。当标准输出不是 TTY 时,启动器会将运行转入后台,并在某个步骤暂停的瞬间让前台进程以 77 退出,释放管道,同时容器保持暂停状态,以便执行 retry。

重试

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

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),以便在标准输出中生成 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 时会自动抑制差异渲染器,避免 ANSI 序列与事件流冲突。结合上述退出码 77 的暂停信号,这为 Agent 提供了可靠的约定:解析 run.paused 事件、作出响应,然后调用 retry——无需通过纯文本 grep 查找。

评论

支持 Markdown