Git提交代码至gitlab后触发Jenkins构建的配置方法

本文详细介绍了如何配置Gitlab,在代码提交后自动触发Jenkins进行构建。关键步骤包括在Gitlab创建访问令牌,Jenkins中安装和配置Git及Gitlab插件,设置Jenkins项目以监听Push事件,生成secrettoken,并在Gitlab项目中配置webhook。同时,文章提到了可能出现的问题,如URL被阻止和同一服务器上的同步问题,并提供了相应的解决方案。
摘要由CSDN通过智能技术生成

在这里插入图片描述

本文不再描述gitlab和Jenkins的搭建方法。

Git提交代码至gitlab后触发Jenkins构建的配置方法

1. 确保jenkins服务器可以克隆gitlab的代码

该步的作用为验证gitlab的ssh key已正确配置,代码push和clone操作正常。

2. 安装Git和Gitlab插件

在Jenkins首页点击Manage Jenkins --> Manage Plugins,切换至Available plugins,确保安装Git Plugin、Gitlab Plugin和Generic Webhook Trigger Plugin并启用。

3. 配置Gitlab插件

3.1 打开Gitlab,点击Preference settings --> personal access tokens(访问令牌)

此步如果没有Private token需要先添加一个。
在这里插入图片描述
【注】此处生成后需及时复制生成的Private token,过后将无法访问。

3.2 打开Jenkins,点击Manage Jenkins --> Configure System,配置Gitlab选项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置完成后,测试是否连接成功,点击Test Connection,返回success则成功。
在这里插入图片描述
之后点击页面底部的应用,再点击保存。

3.3 配置git插件

同3.2,切换至Git Plugin
在这里插入图片描述

在这里插入图片描述
点击底部的应用,再点击保存。

4. 配置Jenkins item

在这里插入图片描述

4.1 选择Freestyle project

在这里插入图片描述
点击确定,之后点击项目进入项目配置。

4.2 项目配置

4.2.1 选择Build when a change is pushed to Gitlab webhook URL,此处只选择了Push Events。

在这里插入图片描述

4.2.2 勾选comments,点击高级。

在这里插入图片描述

4.2.3 勾选Set build description to build cause(eg. Merge request or Git push)。Allowed branches可以配置指定分支,此处选择所有分支都可触发。

在这里插入图片描述

4.2.4 点击generate生成一个secret token,将其复制下来。

在这里插入图片描述
点击应用,再点击保存。至此Jenkins配置完成。

5. Gitlab配置项目钩子并绑定webhook

5.1 进入Gitlab项目设置 --> Webhook设置。

在这里插入图片描述
在这里插入图片描述

5.2 触发来源勾选推送(Push)

在这里插入图片描述

5.3 勾选Enable SSL verification,点击Add webhook.

在这里插入图片描述
【注】此时出现错误提示Url is blocked: Requests to the local network are not allowed.解决方案见问题记录1.
在这里插入图片描述

6. 测试webhook

在这里插入图片描述
可以看到,Jenkins已经自动获取到webhook的通知请求,并执行了构建。
在这里插入图片描述
查看项目控制台,可以看到如下信息:
在这里插入图片描述

问题记录

1. gitlab添加webhook提示Url is blocked: Requests to the local network are not allowed

解决方法: 进入管理中心 --> 设置 --> 网络,点击出站请求(Outbound requests)
在这里插入图片描述
勾选Allow requests to the local network from web hooks and services(允许来自web hooks和服务对本地网络的请求),点击保存修改。
在这里插入图片描述
之后回到webhook的设置界面,重复步骤5即可。

2. 同一台服务器上gitlab和Jenkins的同步问题

当gitlab和Jenkins搭建在同一台服务器上时,并不需要使用ssh或http进行代码克隆。

经过实践,当正确配置git仓库和credentials的时候,无需执行git clone命令,也可将仓库中的内容同步至Jenkins工作空间下,但当前还未发现指定路径的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值