news 2026/4/5 23:43:27

蓝易云 - 从零开始配置Jenkins与GitLab集成:一步步实现持续集成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
蓝易云 - 从零开始配置Jenkins与GitLab集成:一步步实现持续集成

从零开始:Jenkins 与 GitLab 集成持续集成(CI)落地手册 🚀

你要实现的目标很明确:GitLab 一有代码变更,就自动触发 Jenkins 拉代码、构建、测试,并把结果形成可追溯的交付闭环。核心抓手是三件事:插件、凭据、Webhook。


一、整体工作流(给团队对齐认知)🧠

开发者 Push/MR 到 GitLab ↓(Webhook) Jenkins 收到事件并触发 Job ↓ Jenkins 用凭据拉取代码(Git 插件执行检出) ↓ 跑 Jenkinsfile:Build → Test → Package ↓ 结果沉淀:日志/制品/(可选)状态回写

注意:Webhook 触发入口通常是 Jenkins 的/project/<JOB_NAME>端点(由 GitLab 插件提供)。 (Stack Overflow)


二、Jenkins 侧配置(先把“底座”打牢)🧱

1)安装必需插件

在 Jenkins「Manage Plugins」安装:

  • Git plugin(负责拉代码、检出、分支处理等基础 Git 能力) (Jenkins Plugins)

  • GitLab Plugin(负责接收 GitLab Webhook、鉴权触发) (Jenkins Plugins)

  • (可选)GitLab Branch Source(多分支/合并请求流水线场景更省心,2025-12 仍在持续迭代) (Jenkins Plugins)

2)建立 GitLab 访问凭据(两类要分清)

  • 拉代码用:建议用 GitLab 的 Token 走 HTTPS(Jenkins Credential 可选 “Username/Password”,把 Token 当 password)。

  • Webhook 鉴权用:GitLab Plugin 支持对/project触发端点启用鉴权,避免“任何人都能打你 CI”。同时建议全链路用 HTTPS 防止令牌被截获。 (Jenkins Plugins)


三、GitLab 侧配置(把触发链路接上)🔔

1)创建 Token(推荐“最小权限”)

在 GitLab 创建 Access Token(可选个人/项目/组级别),用于 Jenkins 做集成鉴权与 API 交互。通常需要 api 范围。 (GitLab 文档)

2)配置 Webhook

在目标仓库 Settings → Webhooks:

  • URL:填<JENKINS_URL>/project/<JOB_NAME>

  • Secret Token:填你在 Jenkins Job 中配置的同一个密钥(用于触发鉴权)

  • 事件:至少勾选 Push events;如要 MR 驱动 CI,可勾选 Merge request events


四、创建 Jenkins Job(用流水线把交付动作标准化)⚙️

建议用 Pipeline(流水线即代码),仓库根目录放Jenkinsfile

Jenkinsfile 示例(最小可跑)

pipeline { agent any options { timestamps() } stages { stage('Checkout') { steps { git branch: 'main', url: '<GITLAB_REPO_URL>', credentialsId: 'gitlab-cred' } } stage('Build') { steps { sh 'bash -lc "make build"' } } stage('Test') { steps { sh 'bash -lc "make test"' } } } }

逐段解释(务必看懂再上线):

  • pipeline { agent any }:告诉 Jenkins 在任意可用执行节点上跑,属于流水线的“资源调度入口”。

  • options { timestamps() }:日志带时间戳,排障时能把“事件—构建—发布”串成因果链。

  • stage('Checkout'):把代码检出到 Workspace。

  • git ... credentialsId:用指定 Jenkins 凭据拉取仓库,避免把 Token 写进代码(这叫把敏感信息从代码面“剥离”成受控资产)。

  • sh 'bash -lc "make build"':用登录 shell 执行构建命令,确保环境变量与工具链一致;make build仅是示例,你替换成 Maven/Gradle/npm 都行。

  • make test:把测试纳入“强制门禁”,不让“看似能跑”的提交混进主干。


五、关键点对照表(少走弯路)📌

项目你要的结果正确做法常见翻车点
触发链路Push/MR 自动触发GitLab Webhook →/project/<JOB_NAME>Jenkins 外网不可达 / 端口未放行
权限边界触发不可被滥用配置 Secret Token + 端点鉴权Secret 留空导致“谁都能触发”
机密治理Token 不落地到代码Jenkins Credentials 托管Token 写进 Jenkinsfile
可观测性失败可定位timestamps + 分阶段日志全部堆在一个脚本里,没人看得懂

六、上线自检清单(快而准)✅🙂

  1. Jenkins 能访问 GitLab 仓库(凭据可用、能成功 Checkout)。

  2. GitLab Webhook “Test” 返回 200(或 Jenkins 收到触发日志)。

  3. Push 一次:Jenkins 自动起构建,且每个 stage 都有清晰日志。

  4. 全链路走 HTTPS(别让 Token 以明文跑在网络里)。 (Jenkins Plugins)

如果你把你的场景补充两句:是“单分支流水线”还是“多分支 + MR 校验”,以及你的构建工具链(Maven/Gradle/npm/Go),我可以把上面的模板直接升级成一套更贴近生产的 CI 基线(含缓存、并行、制品归档与失败告警),让它从“能跑”变成“可运营”。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 21:30:12

基于SpringBoot的养宠指南服务平台的设计与实现毕业设计源码

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于SpringBoot框架的养宠指南服务平台。该平台旨在为宠物主人提供全面、便捷的养宠信息和服务&#xff0c;以满足日益增长的宠物市场需…

作者头像 李华
网站建设 2026/4/4 11:40:59

国产化替代新星:DDColor挑战国外老照片修复商业软件

国产化替代新星&#xff1a;DDColor挑战国外老照片修复商业软件 在博物馆的数字化档案室里&#xff0c;一位工作人员正小心翼翼地扫描一张1940年代的老照片——泛黄、斑驳&#xff0c;人物面容模糊不清。他没有将图像上传到任何云端服务&#xff0c;也没有打开昂贵的订阅软件&a…

作者头像 李华
网站建设 2026/4/4 18:39:20

OpenMV识别物体颜色:HSV阈值调节完整指南

OpenMV颜色识别实战&#xff1a;从HSV调参到稳定追踪的完整路径你有没有遇到过这样的场景&#xff1f;在实验室里调试得好好的颜色识别程序&#xff0c;一搬到现场就“失明”——白天能识别的红色积木&#xff0c;到了傍晚突然消失&#xff1b;原本清晰的绿色标记&#xff0c;在…

作者头像 李华
网站建设 2026/4/3 5:53:52

Adapter与Prompt Tuning对比:轻量微调方法选型建议

Adapter与Prompt Tuning对比&#xff1a;轻量微调方法选型建议 在大模型时代&#xff0c;如何用有限的算力资源让一个千亿参数的预训练语言模型快速适应某个垂直领域任务&#xff0c;成了每一个AI工程师必须面对的问题。全量微调虽然效果稳定&#xff0c;但动辄数百GB显存、数万…

作者头像 李华
网站建设 2026/4/3 10:19:27

SGLang推理加速原理剖析:ms-swift为何快人一步

SGLang推理加速原理剖析&#xff1a;ms-swift为何快人一步 在大模型落地进入“拼效率”的今天&#xff0c;一个看似简单的用户提问——“你是谁&#xff1f;”背后&#xff0c;可能牵动着数十亿参数的计算洪流。如果每次响应都要等上几秒&#xff0c;再强大的模型也难以在真实场…

作者头像 李华
网站建设 2026/4/2 15:58:39

设备无关训练:CPU、MPS、NPU均可参与大模型微调过程

设备无关训练&#xff1a;CPU、MPS、NPU均可参与大模型微调过程 在一台仅搭载 M1 芯片的 MacBook Air 上&#xff0c;一名独立开发者正微调一个 70 亿参数的语言模型&#xff1b;与此同时&#xff0c;某国产云平台利用 Ascend 910 NPU 集群完成千卡级分布式训练&#xff1b;而在…

作者头像 李华