CI-CD 是什么

一句话总结

CI-CD 是代码变更自动走「集成测试 → 构建 → 部署」管线的工程实践,减少手动操作和发布事故。


🤔 为什么会有它 / 解决了什么问题

手动部署经常漏步骤、配错环境、忘记测试。CI-CD 把从提交代码到上线的流程编码为自动化管道,每次 push 都走同一套流程,可重复、可追溯。


🔍 具体运作逻辑

开发者推送代码到 Git 仓库 → Webhook 触发 CI 服务器拉代码、跑测试、构建产物 → 产物推送到 Registry → CD 系统自动部署到目标环境。


🧭 什么情况下会用到 / 什么场景会遇到它

  • Frappe Press 的 Bench 构建(Docker 镜像 build → Registry → Deploy)
  • CF Pages 接入 Git 仓库后自动部署静态站点

🛠️ 怎么上手 / 在哪操作

GitHub Actions、GitLab CI 或 Cloudflare Pages 自带 CI:在仓库根目录放配置文件,定义构建和部署步骤。


⚖️ 副作用 / 代价 / 取舍

  • 调试失败的 CI 管道常常比手动部署更花时间,尤其构建环境与本地不一致时
  • 管线配置本身也需要测试和维护——“CI 的 CI”

🕰️ 来历

  • 谁提出/创造的:持续集成概念由 Grady Booch 在 1991 年提出,持续部署由 ThoughtWorks 的 Jez Humble 在《Continuous Delivery》(2010)中系统化
  • 什么时候出现的:CI 工具 Jenkins 2005 年发布;GitHub Actions 2019 年上线,让 CI-CD 配置像写 YAML 一样简单

🔗 关联 / 经常一起出现的概念

  • Deploy Candidate:Press 中 Build 成功的镜像产物,CI-CD 管线的输出
  • Cloudflare Pages:我们用的 CD 工具——git push 后自动构建并部署到 CF 边缘

⚠️ 注意事项 / 常见误区

CI-CD 不是「装了工具就自动好」——管线的每一步(测试覆盖率、构建缓存策略、回滚机制)都要持续投入。配置放 Git 仓库本身是好事也意味着每次改配置都要走一遍 PR 流程。


📎 记忆锚点

“CI-CD = 把「应该但经常忘的事」交给机器每天每次重复做。Press 的 Bench build + deploy 就是典型 CD 管道。”


📝 更新日志

日期改动原因
2026-07-13首次创建-