GitHub Actions 性能争议:为何大厂开始反思 CI 流程?


在现代软件开发中,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 流程已刻不容缓。

你是倾向于“拿来即用”的 GitHub Actions,还是更喜欢掌控一切的自研/第三方方案?欢迎在评论区分享你的看法。

原文参考:GitHub Actions Is Slowly Killing Your Engineering Team

投喂小莫
给快要饿死的小莫投喂点零食吧~
投喂小莫
分享
分享提示信息