代码仓库#
介绍 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,开发者每次迭代开发,只需要关注业务代码,无需再手动进行打包编译部署等操作。