land推出确定性测试选择工具,加速CI与代码合并
来源标题:Land: Using Determinstic methods for faster CI and merging
land 推出一款位于编码智能体与 main 分支之间的合并工具,推送分支后仅重跑受影响的测试,通过即更新 main。它按记录的函数调用关系而非 AI 猜测来挑选测试,同一变更始终对应同一批测试。目前支持 Python、Go 和 Ruby。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
land 是你的编码代理与 main 分支之间的关卡。你的代理把分支推送到 GitHub,land 将其与 main 合并,只重新运行这次改动可能影响的测试,如果测试通过就更新 main。结果以提交状态的形式返回。看看它如何节省时间 →
land 通过简单的记录来挑选测试,而不是靠 AI 猜测。它记录每个测试实际运行了哪些函数,并与你的改动所触及的函数进行对比,因此同样的改动总是得到同样的测试。
curl -fsSL https://useland.dev/install | sh land login
land login 会在浏览器中通过 GitHub 为你登录,每台机器只需一次。在 SSH 机器上,它会打印一个链接,你输入页面上显示的代码即可。然后在仪表盘上选择一个套餐;在你选择之前,land 不会做任何检查。
在运行你的代理的机器上执行。它会通过 GitHub 为你登录,并为 Claude Code 和 Codex 安装 land skill。
curl -fsSL https://useland.dev/install | sh
添加仓库,只需一次
在仓库中执行。--dry-run 会显示将要上传的内容:仅已提交的文件,不含历史记录,绝不包含 .env。land 会找到测试、安装依赖,并记录哪些测试已经失败。
支持的语言:Python、Go、Ruby(RSpec,需提交 Gemfile.lock)、TypeScript/JavaScript(vitest、node --test 或 mocha)只运行改动可能影响的测试。Jest、Rust、其他 Ruby 项目、Java 和 Kotlin(Maven 或 Gradle)、PHP、C#、C 或 C++(CMake 或 make)目前每次改动都会运行完整测试套件。如果 land 选错了测试,请传入 --test '<command>'。
land add --dry-run land add
告诉你的代理完成的工作该去哪里
将以下内容添加到仓库的 CLAUDE.md(Codex 等使用 AGENTS.md)中。
当工作完成时,运行 land merge --onto main。land 会将其与 main 合并,并运行可能受影响的测试。
它会输出 JSON:landed,以及包含失败测试的 refused。修复被拒绝的问题后再次运行。
然后推送它给你的提交:git push origin :main。
绝不要为了通过而编辑、跳过或删除测试。
CI 和云端代理
在没有浏览器可以登录的环境中,在仪表盘上为你允许使用的仓库创建一个 token,并将其设置为 LAND_TOKEN。这样 land merge 就能在无需登录的全新检出中工作。token 不能添加仓库或更改测试命令,你可以随时撤销它。
LAND_TOKEN=$LAND_TOKEN land merge "$BRANCH" --onto main
解读判定结果
$ land merge sub/api sub/ledger --onto main { "landed": ["sub/api"], "refused": [{ "who": "sub/ledger
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。