在现代软件开发中,GitHub Actions 几乎成了 CI/CD 的默认选择。然而,前 CircleCI 资深工程师 Ian K. Duncan 近期发表的一篇博文在开发者圈内引发了剧烈讨论:GitHub Actions 真的好用吗?还是它仅仅因为“默认”而赢得了市场?
📉 日渐臃肿的“红色 X”体验
Ian 指出,GitHub Actions 的日志查看器正在成为开发者效率的杀手。
- 层级繁琐:从 PR 页面点击到看到具体的错误日志,往往需要经过 3-4 次页面跳转,且伴随着缓慢的加载动画。
- 性能瓶颈:面对大型项目的海量日志,网页版查看器极易卡死甚至崩溃,迫使开发者不得不下载原始日志文件。
- 回退陷阱:UI 的导航逻辑混乱,点击“返回”按钮往往无法回到 PR 页面,这种体验被戏称为“CI 界的 DMV(车管所)”。
🧩 YAML 陷阱与“暗箱”市场
GitHub Actions 的配置严重依赖 YAML,但其内置的表达式语言却极其复杂且难以调试。
- 调试地狱:修改一个 YAML 字符可能需要等待 20 分钟的运行周期才能验证结果。
- 安全隐患:Marketplace 中充斥着大量由陌生人维护的 Action,每一次
uses都是在向陌生人开放你的仓库权限。
💻 算力瓶颈与自研方案的兴起
默认的 GitHub Runner 性能有限,且成本高昂。这直接催生了一批如 BuildJet、Blacksmith 等初创公司,其唯一业务就是“提供比官方更快的 GitHub Runner”。
🚀 另一种选择:Buildkite
Ian 强烈推荐了 Buildkite 作为替代方案。
- 拥有你的算力:Buildkite 允许开发者在自己的服务器上运行 Agent,获得更快的缓存和更强的控制力。
- 轻量化配置:YAML 仅用于定义流水线,逻辑则交由脚本处理,边界感极强。
- 极致的日志体验:不崩溃、支持 ANSI 色彩,甚至还有自定义 Emoji 这样提升幸福感的小细节。
💬 总结
GitHub Actions 凭借其作为 GitHub 原生组件的便利性统治了市场,但对于追求极致效率的大规模工程团队来说,反思并优化 CI 流程已刻不容缓。