你有没有算过自己花在调试CI/CD上的时间?

三年前的一个周二下午,我在Jenkins里折腾一段Groovy脚本,三小时过去,我突然意识到一件事:我不是在写软件,我是在给Jenkins打工。那一刻我决定,去他的,自己写一个。

打开网易新闻 查看精彩图片

这就是Callahan CI的由来。

打开网易新闻 查看精彩图片

Jenkins的问题不用我多说。插件生态庞大但维护混乱,更新一个插件可能搞崩整个流水线;Groovy DSL功能强大但语法晦涩,跟日常开发完全是两套思维;UI老旧到不只是难看,是根本看不懂当前在跑什么;本地开发环境搭起来像部署服务器集群;配置分散在十几个地方,没一个直观。

GitHub Actions改善了一些——YAML至少能看懂,应用市场也规范些。但代价是全押云端,密钥存在你看不见的地方,按分钟计费对 side project 来说不知不觉就超支。

我想要的东西很简单:能在笔记本上跑,不上云,不需要 agent,没有插件市场。代码一推,自动构建,出错立刻知道。

Callahan CI是一个单文件Go二进制。克隆仓库,执行./start.sh dev,localhost:3000就有了完整的CI/CD平台。API、流水线执行器、WebSocket日志流、仪表盘,全在一个进程里。状态存在SQLite文件。

它读取Callahanfile.yaml(语法兼容GitHub Actions,迁移成本低),把构建步骤作为原生shell进程执行,实时流式输出日志并存储结果。

以上是基础功能。真正让我花心思的是AI层。

我不想做那种事后 bolt-on 的"AI助手"。我想要的是在流水线特定节点自动干活的 agent,不需要你开口。

一共四个:

打开网易新闻 查看精彩图片

架构师(The Architect)

用 plain English 描述你的流水线,它自动生成Callahanfile.yaml——jobs、steps、部署阶段、AI标记,然后提交回仓库。已有Jenkinsfile或GitHub Actions工作流?它也能迁移。

调试器(The Debugger)

构建失败时,点一下"AI Explain Failure"。它读取失败任务的日志和流水线配置,返回简短根因和具体下一步。不用再半夜翻800行堆栈。

示例输出:

DIAGNOSIS: Build failed because npm couldn't find package.json. The repo is a Go project — language detection fell through to the JS default. Replace the build step with: go build ./...

审查员(The Reviewer)

每次构建自动运行。读取diff,检查——