【Jenkins 配置 GitLab 完整指南】

1. 配置前的准备工作

在开始配置前,请确保您已具备以下条件:

  • 已安装并运行 Jenkins 和 GitLab
  • 拥有 GitLab 管理员权限
  • 了解基本的 Jenkins 和 GitLab 操作

2. 安装必要的 Jenkins 插件

2.1 安装 GitLab 插件

  1. 登录 Jenkins 管理界面
  2. 进入 系统管理​ > 插件管理​ > 可用插件
  3. 搜索并安装以下插件:
    • GitLab Plugin(核心插件)
    • Git plugin(Git 集成)
    • Build Authorization Token Root Plugin(Webhook 认证)

2.2 插件配置检查

安装完成后,重启 Jenkins 服务确保插件生效:

sudo systemctl restart jenkins

3. 在 GitLab 中创建访问令牌

3.1 创建 Personal Access Token

  1. 登录 GitLab,进入 Settings​ > Access Tokens
  2. 创建新令牌,配置以下权限:
    • api(完全 API 访问)
    • read_repository(读取仓库)
    • write_repository(写入仓库)
  3. 保存生成的令牌(稍后在 Jenkins 中需要使用)

3.2 创建 Project Access Token(推荐用于项目级集成)

对于更安全的项目级集成,建议使用项目访问令牌:

  1. 进入具体项目 Settings​ > Access Tokens
  2. 创建令牌并选择所需权限

4. 在 Jenkins 中配置 GitLab 连接

4.1 添加 GitLab 服务器配置

  1. 进入 系统管理​ > 系统配置
  2. 找到 GitLab​ 部分,配置如下:
GitLab 连接名称: gitlab-server GitLab 主机 URL: https://your-gitlab-domain.com 凭据: 选择或添加 GitLab 访问令牌

4.2 配置凭据

  1. 点击 添加​ > Jenkins
  2. 选择 GitLab API token​ 类型
  3. 输入在 GitLab 中创建的访问令牌
  4. ID 可留空,系统会自动生成

5. 配置 Jenkins 项目连接 GitLab

5.1 创建新的 Jenkins 项目

  1. 点击 新建任务
  2. 选择 构建一个自由风格的软件项目
  3. 输入项目名称

5.2 配置源代码管理

源代码管理​ 部分:

选择: Git Repository URL: https://gitlab.example.com/your-group/your-project.git 凭据: 添加 GitLab 用户名和密码或 SSH 密钥 分支: */main 或您想要构建的分支

5.3 配置构建触发器

构建触发器​ 部分:

  1. 勾选 Build when a change is pushed to GitLab
  2. 复制生成的 GitLab webhook URL
  3. 生成Secret token

6. 在 GitLab 中配置 Webhook

6.1 添加 Webhook

  1. 进入 GitLab 项目 Settings​ > Webhooks
  2. 粘贴从 Jenkins 复制的 Webhook URL
  3. 选择触发事件(推荐):
    • Push events
    • Merge request events
    • Tag push events

如果出现【invalid url given】字样,则需要检查 GitLab 的网络设置

GitLab 默认禁止向本地网络发送 Webhook 请求。需要管理员权限修改设置:

  1. 转到 Admin Area > Settings > Network
  2. 勾选 Allow requests to the local network from web hooks and services

6.2 配置 SSL 验证(可选)

如果使用 HTTPS:

  • 勾选 Enable SSL verification(生产环境推荐)
  • 或取消勾选(测试环境)

6.3 测试 Webhook

点击 Test​ 下拉菜单,选择事件类型测试连接:

  • 推送事件测试
  • 合并请求测试

jenkins回收到相关时间,并执行相关处理。

7. 高级配置选项

7.1 基于分支的构建规则

在 Jenkins 项目的 构建触发器​ 中配置高级选项:

# 只构建特定分支 Filter branches by name: ^(main|develop)$ # 基于合并请求的构建 Filter merge requests by target branch name: ^main$

7.2 构建状态通知

配置 GitLab 接收构建状态:

  1. 在 Jenkins 构建后操作​ 中添加 Publish build status to GitLab
  2. 选择对应的 GitLab 连接

8. Pipeline 项目配置

8.1 使用 Jenkinsfile

在项目根目录创建 Jenkinsfile

pipeline { agent any triggers { gitlab( triggerOnPush: true, triggerOnMergeRequest: true, branchFilterType: 'All' ) } stages { stage('Build') { steps { echo 'Building...' } } stage('Test') { steps { echo 'Testing...' } } } post { always { updateGitlabCommitStatus name: 'build', state: 'success' } } }

8.2 多分支 Pipeline 配置

  1. 在 Jenkins 中创建 Multibranch Pipeline
  2. 配置分支源为 GitLab
  3. 设置分支发现策略

9. 安全配置最佳实践

9.1 网络隔离

  • 确保 Jenkins 和 GitLab 在同一网络或可互相访问
  • 配置防火墙规则限制访问

9.2 凭据管理

  • 使用 Jenkins 凭据管理器存储敏感信息
  • 定期轮换访问令牌
  • 为不同环境使用不同的凭据

9.3 Webhook 安全

# 启用 Secret Token 增强安全性 在 GitLab Webhook 配置中设置 Secret Token 在 Jenkins 项目配置中配置相同的令牌

10. 故障排除常见问题

10.1 Webhook 测试失败

问题:GitLab 显示 "Could not connect to the URL"

解决

  • 检查 Jenkins URL 可访问性
  • 验证网络连接和防火墙设置
  • 检查 Jenkins 是否运行正常

10.2 认证失败

问题Failed to connect to repository

解决

  • 验证凭据是否正确
  • 检查 GitLab 用户权限
  • 确认访问令牌未过期

10.3 构建不触发

问题:代码推送后 Jenkins 不自动构建

解决

  • 检查 Webhook 配置
  • 查看 Jenkins 系统日志
  • 验证分支过滤规则

11. 监控和日志

11.1 查看构建日志

  • 在 Jenkins 项目页面查看构建历史和日志
  • 使用 Blue Ocean​ 插件获得更好的可视化

11.2 GitLab 集成状态

  • 在 GitLab 合并请求中查看 Jenkins 构建状态
  • 监控 Webhook 最近交付记录

12. 性能优化建议

12.1 构建触发优化

  • 设置合理的轮询间隔
  • 使用 Webhook 替代 SCM 轮询
  • 配置构建队列策略

12.2 资源管理

  • 为不同的项目设置不同的执行器
  • 使用 Docker 代理实现环境隔离
  • 配置构建超时和资源限制

通过以上配置,您就成功建立了 Jenkins 与 GitLab 的完整集成,可以实现代码推送自动构建、合并请求验证等现代化 CI/CD 流程。

Read more

小智医疗:Java大模型应用项目全流程实战,企业级java项目LangChain4J项目,LangChain+向量数据库+RAG视频配套笔记

前言 当前笔记是根据尚硅谷的小智医疗总结的一篇学习笔记,小智医疗整个视频一共有15章,该课程非常适合给未接触过人工智能的同学做一个很好的入门,该视频系列有很大一部分是在做知识导入,带我们了解机器学习,很适合想了解java大模型的初学者的入门级教学,之后,非常感谢尚硅谷的又一精品课程,全篇一共5w+字,文档中出现的错误欢迎大家指正,最后,如果你觉得该笔记不错的话,欢迎点赞+收藏+关注,博主会更多努力分享优秀课程的,谢谢大家!😊 相关视频链接: 小智医疗:Java大模型应用项目全流程实战,企业级java项目LangChain4J项目,LangChain+向量数据库+RAG 相关资料:https://pan.baidu.com/s/1eZSTzhcn_BkOzv6MxP2L0g?pwd=yyds 提取码: yyds 以下是本篇文章正文内容 一、LangChain4j 入门 1、简介 LangChain4j 的目标是简化将大语言模型(LLM - Large Language

By Ne0inhk
华为OD机试双机位C卷 - Alice的安全旅行 (C++ & JAVA & Python & C语言 & JS & GO)

华为OD机试双机位C卷 - Alice的安全旅行 (C++ & JAVA & Python & C语言 & JS & GO)

Alice的安全旅行 华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 200分题型 华为OD机试双机位C卷真题目录点击查看: 华为OD机试双机位C卷真题题库目录|机考题库 + 算法考点详解 题目描述 Alice计划从城市0出发最终到达城市N-1,他可以选择一条路线,但路上经过的城市总数(包括起点和终点)不能超过K个,每个城市都有一个安全度值,整个旅程的安全度被定义为路径上所有城市安全度的最小值,她的目标是让这个最小值尽可能高,请问Alice的旅程总体安全度最大能为多少? 输入描述 第一行有两个整数N和K,表示一共N个城市,以及Alice最多去K个城市(2<N<100000,1<K<100000) 接下来N行 每行包括一个整数h 表示去某个城市的安全度0=<h<=1000000000 接下来一行有一个整数M,表示城市间的M条道路,0<M<200000 接下来M行 每行有两个整数s0 s1

By Ne0inhk
Java 大视界 -- Java 大数据在智能医疗医疗设备维护与管理中的应用(358)

Java 大视界 -- Java 大数据在智能医疗医疗设备维护与管理中的应用(358)

Java 大视界 -- Java 大数据在智能医疗医疗设备维护与管理中的应用(358) * 引言: * 正文: * 一、Java 构建的医疗设备数据监控架构 * 1.1 多源设备数据实时采集 * 1.2 设备台账与生命周期管理 * 二、Java 驱动的故障预警与维护策略 * 2.1 多模型融合故障预测 * 2.2 智能维护调度与资源协同 * 三、实战案例:从 “停机危机” 到 “平稳运行” * 3.1 急诊监护设备:72 小时的电池预警 * 3.2 MRI 设备:从 520 万维修费到 210 万 * 结束语: * 🗳️参与投票和联系我: 引言: 嘿,

By Ne0inhk
Java 注解与反射实战:自定义注解从入门到精通

Java 注解与反射实战:自定义注解从入门到精通

前言:注解到底是什么?         你是否经常在 Java 代码中看到@Override、@Deprecated这样的标记?这些就是注解 —— 一种给代码 "贴标签" 的机制。注解本身不直接影响代码执行,但能通过工具(如编译器)或框架(如 Spring)赋予代码额外含义。         自定义注解则是让我们根据业务需求创建专属 "标签",结合反射机制能实现强大的动态逻辑(比如日志记录、权限校验、ORM 映射等)。本文将从基础到实战,带你掌握自定义注解的定义、元注解的作用,以及如何通过反射让注解 "生效"。 一、自定义注解基础:@interface 关键字         自定义注解使用 @interface 关键字定义,本质上是一种特殊的接口(编译后会生成继承 java.lang.annotation.Annotation 的接口)

By Ne0inhk