CI CD

来自牛奶河Wiki
阿奔讨论 | 贡献2024年12月2日 (一) 11:19的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

持续集成(CI)和持续交付(CD)是现代软件开发中两个非常重要的概念,代表了一套自动化流程,旨在提高软件开发的效率和质量。CI/CD 是一种现代软件开发的最佳实践,它通过自动化构建、测试和部署,提高了软件开发的效率和质量。通过采用 CI/CD,开发团队可以更快地交付高质量的软件产品。

  1. 自动化: CI/CD 强调自动化,以减少人为干预,提高效率
  2. 频繁集成:频繁地将代码合并到主分支,减少集成问题
  3. 快速反馈:快速反馈开发人员的代码变更,以便及时纠正错误
  4. 可重复性:构建和部署过程应该是可重复的,以保证一致性

常用工具

  • Jenkins:最流行的开源 CI/CD 工具
  • GitLab CI/CD:GitLab CI/CD 工具
  • CircleCI:云原生 CI/CD 平台
  • GitHub Actions:GitHub CI/CD 工具
  • Azure DevOps:微软云端 DevOps 平台

持续集成(Continuous Integration,CI)

开发人员更改代码并合并到一个共享的代码仓库中,每一次提交都会触发自动化的构建和测试过程。

目标

及早发现问题:通过自动化测试,尽早发现并修复代码中的错误 提高代码质量:频繁集成可以保证代码库的稳定性 缩短反馈周期:开发人员可以快速得到反馈,及时调整开发方向

典型流程

代码提交:开发人员将代码提交到版本控制系统(如 Git) 自动构建:系统自动触发构建过程,将代码编译成可执行文件 运行测试:执行单元测试、集成测试等,确保代码质量 反馈结果:将测试结果反馈给开发人员

持续交付(Continuous Delivery,CD)

持续交付是在持续集成的基础上,将经过测试的代码自动部署到预生产环境。

目标

缩短发布周期:通过自动化部署,可以更快地将软件交付给用户 降低部署风险:自动化部署可以减少人为错误,降低部署风险 提高软件质量:频繁部署可以获得更早的反馈,从而提高软件质量

典型流程

自动部署:系统自动将代码部署到预生产环境 手动审批:人工审核部署结果,如果通过审核,系统自动将代码部署到生产环境