news 2026/4/15 13:11: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/11 21:42:54

思否文章投稿:发布深度技术解析建立品牌权威

ms-swift&#xff1a;重塑大模型开发范式的一体化引擎 在AI研发日益“工业化”的今天&#xff0c;一个现实摆在每一位开发者面前&#xff1a;我们不再只是训练一个模型&#xff0c;而是在构建一套从数据到服务的完整流水线。面对动辄数十GB的模型权重、复杂的分布式策略和千变…

作者头像 李华
网站建设 2026/4/4 14:53:19

救命神器10个AI论文平台,专科生毕业论文轻松搞定!

救命神器10个AI论文平台&#xff0c;专科生毕业论文轻松搞定&#xff01; AI 工具如何成为论文写作的得力助手&#xff1f; 在当前的学术环境中&#xff0c;越来越多的学生开始借助 AI 工具来提升论文写作效率。尤其是对于专科生而言&#xff0c;面对繁重的毕业论文任务&#x…

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

基于SpringBoot的医患交流平台的设计与实现毕业设计

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于SpringBoot框架的医患交流平台&#xff0c;以满足现代医疗环境下医患沟通的需求。具体研究目的如下&#xff1a;提高医患沟通效率&…

作者头像 李华
网站建设 2026/4/9 10:13:31

SimPO最大间隔偏好优化:平衡准确性与多样性的新尝试

SimPO最大间隔偏好优化&#xff1a;平衡准确性与多样性的新尝试 在构建智能对话系统时&#xff0c;我们常常面临一个两难困境&#xff1a;如何让模型既准确回答问题&#xff0c;又能灵活应对开放性提问&#xff1f;许多团队发现&#xff0c;经过DPO训练的模型虽然能在封闭任务中…

作者头像 李华
网站建设 2026/4/9 2:25:46

C#程序员转型AI首选:零基础使用界面化工具训练专属大模型

C#程序员转型AI首选&#xff1a;零基础使用界面化工具训练专属大模型 在企业级开发领域深耕多年的C#工程师&#xff0c;常常面临一个现实困境&#xff1a;AI浪潮汹涌而至&#xff0c;生成式大模型正在重塑软件生态&#xff0c;但深度学习的高墙却让人望而却步。PyTorch代码看不…

作者头像 李华
网站建设 2026/4/8 12:03:38

从GitHub镜像到本地部署:一站式完成大模型推理与评测全流程

从GitHub镜像到本地部署&#xff1a;一站式完成大模型推理与评测全流程 在今天的大模型开发实践中&#xff0c;真正的瓶颈早已不再是“有没有模型可用”&#xff0c;而是——如何在有限资源下&#xff0c;快速、稳定、可复现地把一个开源模型从远程仓库变成能跑起来的服务。尤其…

作者头像 李华