GitLab CI 与 Jenkins

GitLab 代码提交 → Jenkins 人工确认环境 → 部署 → 触发对应环境接口自动化测试 ,jenkins在这个流程中的作用

一、定位 Jenkins

GitLab CI 只管 "代码提交自动构建打包"; Jenkins 负责 "人工确认发布环境 + 触发部署 + 触发对应环境自动化测试",是 CD 阶段的发布调度与审批中枢 。

二、完整全流程

plaintext

复制代码
1. 本地 git push → GitLab
2. GitLab CI 自动:构建 → 单元测试 → 打包 Docker 镜像 → 推镜像仓库
3. 镜像构建完成 → 通知 Jenkins
4. 人工在 Jenkins 选择:发布到 开发/测试/预发/生产 环境(确认环境)
5. Jenkins 执行:调用 K8s / 脚本部署到对应环境
6. 部署完成 → Jenkins 自动触发对应环境的接口自动化测试
7. 测试通过 → 流程结束;失败则阻断上线

三、Jenkins 在流程里的 4 个核心作用

1. 环境发布审批入口

GitLab CI 全自动、无人工; 但生产环境不能自动发 ,必须人工确认。 Jenkins 提供:手动选择环境、人工点击发布,做权限管控、发布确认。

2. 统一部署调度

Jenkins 根据你选的环境:

  • 选开发 → 部署到 dev 命名空间
  • 选测试 → 部署到 test 命名空间
  • 选生产 → 部署到 prod 命名空间 统一调用 K8s / Docker 部署,不用写一堆脚本。

3. 部署后自动触发对应环境接口自动化

特点:

部署到哪个环境,就跑哪个环境的接口自动化 由 Jenkins 调度执行自动化测试脚本(JMeter/Pytest)。

4. 发布记录、日志、回滚

所有发布记录、测试报告、失败日志全部存在 Jenkins,方便追溯、回滚。

四、和 GitLab CI 分工

  • GitLab CI(CI 阶段) :只管代码层面 构建、单元测试、打包镜像,全自动,代码一提交就跑
  • Jenkins(CD 阶段) :只管发布与环境 人工确认环境 → 部署 → 环境级接口自动化测试

五、Docker / Nginx / K8s / Jenkins 整体关系

  • Docker:打包应用镜像
  • GitLab CI:自动打包镜像
  • Jenkins:人工选环境 → 指挥 K8s 部署
  • K8s:在对应环境启动容器
  • Nginx (Ingress):流量入口
  • Jenkins 再触发:该环境的接口自动化测试

六、总结

我们公司采用 GitLab CI + Jenkins 双流水线模式。 GitLab CI 负责代码提交后自动构建、单元测试、打包 Docker 镜像; Jenkins 作为发布中枢,提供人工确认发布环境的能力,选择对应环境后自动通过 K8s 部署,部署完成后触发对应环境的接口自动化测试,实现环境级质量校验。

相关推荐
JavaDog程序狗1 天前
【指南】uni-app微信小程序多环境CI-CD完全指南
ci/cd·uni-app·jenkins
Patrick_Wilson2 天前
sccache 用在 Rust 上为什么常「不省编译」:原理、限制与 Windows 接入
ci/cd·rust·编译器
北风toto2 天前
研发效能与后端核心技术全景指南:从CI/CD到共性组件实战
java·开发语言·ci/cd
heimeiyingwang3 天前
【GitOps·入门篇】工具生态:ArgoCD、Flux、Jenkins X 对比选型
jenkins·flux·argocd·gitops
Jeanyia3 天前
GitLab 配套 Git 常用命令
git·gitlab
顿哥GPT3 天前
ChatGPT Plus/Pro 解锁 Codex 后这样玩:云端任务、本地 CLI 与 CI/CD 的进阶实战手册
ci/cd·chatgpt
游戏开发爱好者83 天前
App Store 上传 IPA 自动化,.p8 密钥认证与 CI/CD 接入实战
android·运维·ci/cd·小程序·uni-app·自动化·iphone
极小狐3 天前
极狐GitLab 补丁版本:19.2.1、19.1.3、19.0.5
网络·安全·gitlab·极狐gitlab·安全更新·补丁版本
骇客野人3 天前
基于Nginx+Eureka+Apollo+Jenkins+SpringBoot Web系统分布式部署方案
nginx·eureka·jenkins
rustfs4 天前
GitLab 如何与 RustFS 集成?
分布式·rust·gitlab