实施CI/CD是否需要前置步骤?缺少自动化测试能否算作CI/CD?
CI/CD 概念边界与场景判定
首先要明确CI和CD是两个独立的、有明确准入标准的概念,不要混淆为统一的流程:
- *CI(持续集成)*的核心目标是尽早发现代码合并后的集成错误,它的强制前置要求就是每次代码提交/合并后自动触发「构建 + 自动化测试」流程。如果缺少自动化测试环节,你无法快速验证新提交的代码是否会破坏现有功能,也就失去了持续集成的核心价值,从严格定义来说并不满足CI的准入要求。
- CD分为两个不同层级:
- 持续交付:基于CI产出的、已经过自动化验证的构建产物,自动完成到测试/预发环境的部署,最终生产环境发布可由人工确认触发
- 持续部署:是持续交付的进阶形态,生产环境的发布也不需要人工干预,全流程自动化执行
针对你提到的「仅实现自动构建、部署,测试环节仍为手动」的场景,从严格的行业标准定义来看,不属于完整的CI/CD流程,只能算是实现了部分自动化部署能力,还没有达到CI的最低要求。
当然目前业界也存在很多对CI/CD的广义宽松用法,部分团队会把只要包含自动化构建、部署环节的流程统称为CI/CD,但这种说法并不严谨。
目前行业普遍认可的CI/CD最小可行标准为:代码提交后自动触发构建 + 核心自动化测试(单元测试/基础集成测试等),测试通过后产出可部署产物,支持一键或自动完成部署。
内容的提问来源于stack exchange,提问作者shunman
相关产品推荐
相关产品推荐

