简要总结
CI Pipeline
这页说明书讲的是 OpenClaw 的“自动检查小帮手”(CI Pipeline)。就像你每次把玩具放回玩具箱,妈妈会检查一下一样,这个小帮手会在每次有人往一个叫 main 的大盒子里放新代码,或者有人想放新代码之前,自动帮忙检查一下。它会聪明地判断哪些地方需要检查,哪些地方不用,这样检查起来又快又不累。
五岁小孩版解释
这个“自动检查小帮手”就像一群勤劳的小机器人。每当我们想把写好的新代码放进一个叫 main 的大宝箱里,或者有人想放进去之前,它们就会开始工作。它们很聪明,会先看看这次改动了什么,如果只改了说明书(docs),就不会去打扰那些负责检查复杂代码的机器人,让检查变得更快。
这些小机器人有不同的名字和任务,就像不同的玩具车有不同的功能一样。我来给你介绍一下它们:
docs-scope和changed-scope机器人:它们是“侦察兵”。docs-scope总是第一个跑出来,看看是不是只改了说明书。changed-scope机器人会在不是只改说明书的时候出动,仔细看看是哪个部分的代码变了(比如是给电脑用的、给苹果电脑用的、给安卓手机用的,还是给窗户系统用的)。- 检查代码的机器人:它们负责检查代码写得对不对、整不整齐。
check机器人:检查一种叫 TypeScript 的代码类型对不对,格式好不好看。只有当代码往main宝箱里推,或者改动和电脑(Node)有关时,它才工作。check-docs机器人:专门检查说明书(Markdown 文件)写得整不整齐,里面的链接能不能点开。只有说明书改了,它才出动。code-analysis机器人:它会数一数这次改动的代码行数,如果一次改动超过 1000 行,它就会提醒大家“改动太大啦!”。这只在有人想提交新代码(PR)时检查。secrets机器人:它像个小侦探,总是检查有没有人不小心把秘密(比如密码)写进了代码里,这可不能让别人看到!
- 打包机器人:
build-artifacts机器人是个“打包员”。当改动不是说明书,并且和电脑(Node)代码有关时,它会把代码打包成一个漂亮的包裹,这样其他机器人就可以直接用这个包裹来检查,不用自己再打包一次了。 - 发布检查机器人:
release-check机器人在打包员工作之后,会仔细检查这个准备发布的包裹(npm pack)里面东西对不对、全不全。 - 测试机器人:这些机器人负责玩一玩(测试)打包好的代码,看它能不能正常工作。
checks机器人:用 Node 或 Bun 工具来玩电脑(Node)部分的代码和协议。checks-windows机器人:专门在窗户系统(Windows)上玩,测试那里的代码。macos机器人:在苹果电脑上,检查一种叫 Swift 的代码,也玩电脑(Node)的测试。android机器人:在安卓手机上,用 Gradle 工具来打包和玩耍(测试)。
这些小机器人们排队工作很有顺序,让简单的检查先做,这样如果发现小问题,就能马上停下来,不用等复杂的检查白跑一趟。它们的排队顺序是:
- 先让
docs-scope、code-analysis和check这几个又快又简单的机器人一起跑(大概1-2分钟)。 - 等它们没问题了,再让打包机器人
build-artifacts工作。 - 最后,才让
checks、checks-windows、macos、android这些需要打包好才能玩的测试机器人出动。
判断“哪里变了”的聪明规则,写在一个叫 scripts/ci-changed-scope.mjs 的文件里,就像一本说明书,而且还有专门的测试(在 src/scripts/ci-changed-scope.test.ts 里)来保证这本说明书是对的。
不同的机器人喜欢在不同的“操场”(Runner)上跑步:
- 大多数在 Linux 系统(像一种很常见的电脑系统)上工作的机器人,包括侦察兵,都在一个叫
blacksmith-16vcpu-ubuntu-2404的操场上。 - 专门测试窗户系统(Windows)的
checks-windows机器人,在blacksmith-32vcpu-windows-2025操场上。 - 在苹果电脑(macOS)上工作的
macos和ios机器人,在macos-latest操场上。
如果你想在自己电脑上,像这些小机器人一样做检查,你也可以用一些简单的命令:
- 输入
pnpm check,就可以检查代码类型和格式。 - 输入
pnpm test,就可以运行测试,玩一玩代码。 - 输入
pnpm check:docs,就可以检查说明书的格式和链接。 - 输入
pnpm release:check,就可以检查准备发布的包裹。