CI/CD 代表持续集成 (Continuous Integration, CI)、持续交付 (Continuous Delivery, CD) 和持续部署 (Continuous Deployment, CD), 是现代软件开发中采用的一套实践和原则, 旨在频繁、快速且可靠的交付软件变更.
持续集成强调开发人员经常性地 (通常是每天多次) 将代码变更合并到共享的主线 (如 master 或 main 分支) 上. 每次代码合并后, 自动化的构建和测试流程都会被触发, 以验证新代码是否能成功构建并且不破坏现有功能. 这包括单元测试、集成测试等, 确保代码质量并及时发现和修复问题.
持续交付建立在持续集成的基础上, 目标是使软件始终处于可随时部署到生产环境的状态. 这意味着一旦代码通过所有阶段的自动化测试, 就可以立即发不到生产环境, 但是否实际部署通常是一个手动触发的决策. 持续交付强调的是快速、高质量的软件准备过程, 以便业务决定最佳的发布时间.
持续部署则更新一步, 他自动将所有通过测试的代码变更部署到生产环境中, 无需人工干预. 这就意味着每次代码推动, 只要通过了自动化测试套件, 就会自动部署到用户手中. 这种做法要求有高度成熟的自动化测试和即时回滚机制, 以确保即使有错误发生也能迅速恢复.
CI/CD 流程通常依赖于一套工具链, 如 Jenkins、GitLab CI/CD、Travis CI、CircelCI、Github Actions 等, 来自动化构建、测试和部署任务.