什么是CICD?

2021-05-28 | 5分钟 | yrobot | CI,CD,持续集成,自动部署

代码仓库

介绍 CICD 之前,要先了解代码仓库和版本管理的概念,特别是代码仓库,是目前主流 CICD 跑起来的基础。
仓库很好理解,就是一个储存东西的大容器;代码仓库就是储存代码的容器,而且它是在云端的。 有了代码仓库,团队开发之间代码管理就有了解决的基础,对于个人在不同设备开发也有了解决方法。 也是因为代码仓库,CICD 工具有能力从仓库拉取代码,再进行下一步操作。

什么是 CI/CD,持续集成、自动部署

CI/CD 是一种在软件开发过程中,通过自动化手段,不断向客户交付应用的方法。
CI/CD 中的“CI”指持续集成。主要包含代码构建,测试,合并。
CI/CD 中的“CD”指自动部署,主要包含代码部署,版本管理。

理想流程

  • 基于 git 版本管理
  • 我们利用分支来区分管理 dev 和 release 代码。
  • 开发者在 dev 分支进行开发,开发结束 push 到代码仓库,对此分支进行 Pull Request 操作,期望合并到 release 分支。
  • 其他开发者对此 PR 进行 code review,直到 PR 被合并到 release 分支或者被丢弃。
  • 当 PR 被合并到 release 分支后,CI 触发,对 release 分支的最新代码进行拉取,并根据 CI 配置对代码进行打包测试等操作。
  • CI 结束后进一步触发 CD 阶段,对于打包好的代码包进行推送部署,期间可能涉及版本管理的平台(看具体配置)。
  • 最终代码被自动部署到环境。

因为有了 CICD,开发者每次迭代开发,只需要关注业务代码,无需再手动进行打包编译部署等操作。