1. 自动化验证代码质量
这是 CI/CD 最核心的初衷,通过配置自动化脚本,在代码提交 / 合并前完成校验,避免有问题的代码进入主分支:
代码检查:自动运行 lint(如 ESLint、Pylint)、代码格式校验(如 Prettier、black),确保代码风格统一;
单元测试 / 集成测试:自动执行测试用例(如 JUnit、pytest),统计测试覆盖率,未通过测试则阻止合并;
编译 / 构建验证:对需要编译的项目(如 Go、Java、C++),自动编译检查是否有语法错误,避免「本地能跑、线上编译失败」。
E2E 端到端测试: 模拟真实用户操作,比如:打开网页 → 输入账号密码 → 点击登录 → 提交表单 → 查看结果。从头到尾验证整个系统流程是否能正常跑通的测试方法。
2. 自动化构建与打包
代码验证通过后,自动完成构建和制品打包,减少人工打包的繁琐和错误:
构建产物:前端项目自动打包成 dist 静态文件、后端项目编译成可执行文件 / JAR 包;
制作镜像:自动构建 Docker 镜像并推送到镜像仓库(如 Gitea Registry、Harbor);
版本管理:自动生成版本号(如基于提交记录、Tag),打标签并归档制品,方便追溯。
3. 自动化部署(CD)
将验证、构建好的产物自动部署到目标环境,实现「代码合并即上线」:
多环境部署:配置不同流水线,自动部署到测试环境(Test)、预发布环境(Staging)、生产环境(Production);
部署方式灵活:支持容器化部署(K8s 发布)、传统部署(SSH 上传文件)、云服务部署(如云函数、容器服务);
回滚机制:配置失败自动回滚,或一键回滚到上一个稳定版本,降低部署风险。