# 简介

CI/CD是指持续集成和持续交付/部署(Continuous Integration and Continuous Delivery/Deployment)。

CI/CD是一种自动化软件开发和交付流程,可以帮助团队更快地交付高质量的软件,同时减少手动操作所带来的错误和风险。它还可以提高团队的协作和沟通能力,促进软件开发的持续改进。

从前端的角度看,CI/CD的流程中涉及:

  • CI:代码push到托管平台之后的lint测试、单元测试
  • CD:将build后的项目丢到远端 Nginx 的静态资源目录下

# 持续集成(CI)

持续集成是一种软件开发方法,它将代码的集成、构建和测试自动化,并将这些过程与团队的协作和版本控制系统集成在一起。这种方法的目的是尽早发现和解决软件开发过程中的问题,从而提高软件开发的质量和速度。

持续集成的实现需要使用一些工具和技术,如版本控制系统、构建服务器、测试工具、代码质量分析工具等。开发人员将代码提交到版本控制系统中,构建服务器会自动从版本控制系统中获取最新的代码,自动构建和测试代码,并将测试结果反馈给开发人员。如果代码有问题,开发人员可以及时发现并解决问题,从而保证代码的质量和稳定性。

持续集成的宗旨是避免集成问题,提升软件的质量和缩短交付时间。持续集成应遵循以下原则:

  • 所有开发人员都需要做本地构建,然后提交到版本控制库中,从而确保变更不易导致持续集成失败
  • 开发人员每天至少需要从版本库中更新一次代码
  • 每次构建都要100%通过
  • 每次构建都可以生成可发布的产品
  • 修复失败的构建是优先级最高的问题
  • 测试是未来,未来是测试

持续集成是敏捷开发方法的重要组成部分,它可以帮助团队更快地交付高质量的软件,同时也有助于减少开发过程中的错误和漏洞。

# 持续部署(CD)

持续部署是指将经过测试和验证的代码自动部署到目标环境中。一般情况下,持续部署仅用来部署非生产环境。因为自动化的测试手段并不能保证业务逻辑的准确性,所以需要依赖手工测试。

持续部署是CI/CD流程的一部分,是自动化软件开发和交付流程中的最后一步。它需要使用一些工具和技术,如自动化部署工具、容器化技术、云计算平台等。

持续部署的好处包括:

  • 减少手动操作和人为错误,提高软件开发的效率和质量
  • 更快地发现和解决问题
  • 改善团队的协作和沟通能力,促进软件开发的持续改进

然而,持续部署也存在一些挑战和风险,如自动化测试不充分、部署过程中出现问题导致故障等。因此,团队需要仔细规划和实施持续部署流程,并不断改进和优化。