结合Gitlab Plugin
的方式监听gitlab操作
第一步(gitlab)创建gitlab的访问令牌

第二步 (Jenkins)Jenkins安装gitlab/gitlab hook插件
安装
gitlab
和gitlab hook
,gitlab hook
的作用是可以接收gitlab hook传过来的参数这里注意:新版jenkins中不再支持
gitlab hook
插件,如果插件管理中没看到gitlab hook
,可以换成Generic Webhook Trigger
,下文中有介绍

第三步(Jenkins)配置gitlab的凭证

第四步(Jenkins) 配置gitlab的连接

第五步(Jenkins)创建jenkins构建项目


第六步(gitlab)配置Hook

允许hook和服务访问本地网络
新版的gitlab为了安全默认禁止了本地局域网地址调用web hook
我们在设置里允许就行,具体步骤如下:

第七步 测试触发
1 | touch 1.txt |

结合Generic Webhook Trigger
的方式
Generic Webhook Trigger是Jenkins插件之一,它的作用是允许Jenkins通过HTTP POST请求接收任何类型的数据,并将其转换为Jenkins可识别的格式。这个插件可以被用于许多场景,例如:
- 与外部系统集成:通过将Generic Webhook Trigger暴露给外部系统,可以让外部系统向Jenkins发送请求触发构建或执行其他操作。
- 自动化测试:可以使用Generic Webhook Trigger将测试结果发送给Jenkins,以便Jenkins可以自动化处理测试结果并执行后续操作。
- 自定义构建触发器:可以使用Generic Webhook Trigger自定义构建触发器,例如,只有当特定的数据被发送到Jenkins时才会触发构建。
总之,Generic Webhook Trigger可以帮助Jenkins与外部系统进行集成,并提供更灵活的构建触发方式。
插件文档:https://plugins.jenkins.io/generic-webhook-trigger/
安装Generic Webhook Trigger插件
在“系统设置–插件管理–可选插件”界面搜索:Generic Webhook Trigger,可以看到,点击安装,然后重启。

这里是我已经装过,所以在“已安装”界面看下
搭建工作
一、创建Job
这里创建自由风格项目
二、配置Job

1)源码管理

2)构建触发器

由HTTP请求触发http://JENKINS_URL/generic-webhook触发器/调用
3)Post content parameters:获取调用接口传进来的数据
调用的时候:这里要把 JENKINS_URL 换成自己真实的Jenkins 服务器地址,有端口就加上端口,是域名就写域名。下面是一个参考的URL:
1 | http://192.168.1.200:8080/generic-webhook-trigger/invoke |
JsonPath语法文档:https://github.com/json-path/JsonPath

4)Token: 给URL添加一个触发的认证
1 | curl http://192.168.1.200:8080/generic-webhook-trigger/invoke?token=skyfish2021 |

5)Header parameters:获取Header中的参数
客户端发送请求(什么请求都可以,这里的header与请求类型无关), 带有两个参数 header_name 和 header_id 。
1 | curl --location --request GET 'http://192.168.1.200:8080/generic-webhook-trigger/invoke?token=demo-pipeline-service' \ |
Jenkins 配置Generic hook,获取请求参数header_name 和 header_id 。

6)Request parameters:获取URL中的请求参数
1 | curl http://192.168.1.200:8080/generic-webhook-trigger/invoke?runopts=gitlab |

7)拉取代码仓库的条件/打印调试信息到日志中

8)触发条件过滤:仅满足条件才能触发此作业

Rebuilder 插件使用
可以直接携带原触发参数进行触发,不用重复触发(不用在重复的提交代码了)。

进入某一次构建后,可以点击rebuild。
