1. 配置Gitlab的提交流水线
在需要配置的项目上配置一个通用的触发器,并且创建一个请求参数runOpts用来区分流水线执行的时候是自动触发还是手动触发。如果想要自动触发流水线还需要配置一个Token来给gitlab使用。Token一般会使用项目的名称或者自定义的字符串



在新版本的Gitlab中需要调整一下网络的请求限制,否则配置完勾子后会报一个无效的网络连接。下图是修改网络请求,需要说明一点,这里要使用系统管理员的账号

配置完成后拷贝触发器的地址http://JENKINS_URL/generic-webhook-trigger/invoke。然后打开Gitlab上想要触发的项目仓库的 设置–> 集成 --> Webhooks 的功能添加一个新的Webhooks 。url填写Jenkins中复制的地址,需要将JENKINS_URL替换成Jenkins的实际地址,并且在地址的后边添加?token=****&runOpts=GitlabPush,推送事件来源选择为push的动作




2. 部分的优化
在通用的勾子中配置的参数,Jenkins会自动的将参数注入到全局变量中。
Gitlab触发的Jenkins勾子会传入的参数为:
{
"object_kind": "push",
"event_name": "push",
"before": "26d917903fcddac0bd468e7345f51a41d9cbcdd2",
"after": "34c1381c7e381997cd1ea20f50bd1571534f9bae",
"ref": "refs/heads/master",
"ref_protected": true,
"checkout_sha": "34c1381c7e381997cd1ea20f50bd1571534f9bae",
"message": null,
"user_id": 2,
"user_name": "王**",
"user_username": "wang**",
"user_email": "",
"user_avatar": "http://********2/avatar.png",
"project_id": 25,
"project": {
"id": 25,
"name": "e10-seconddev-template",
"description": null,
"web_url": "http://*****seconddev-template",
"avatar_url": null,
"git_ssh_url": "ssh://git@gitlab.******econddev-template.git",
"git_http_url": "http*****seconddev-template.git",
"namespace": "template",
"visibility_level": 10,
"path_with_namespace": "*****",
"default_branch": "master",
"ci_config_path": null,
"homepage": "http://*******0-seconddev-template",
"url": "ssh://*****seconddev-template.git",
"ssh_url": "ssh://gi******-seconddev-template.git",
"http_url": "http:/*****-seconddev-template.git"
},
"commits": [
{
"id": "34c1381c7e3814f9bae",
"message": "增加脚本依赖文件",
"title": "增加脚本依赖文件",
"timestamp": "2024-11-07T01:28:09+00:00",
"url": "http://******template/-/",
"author": {
"name": "王**",
"email": "w***com"
},
"added": [
"build.gradle.kts"
],
"modified": [],
"removed": []
},
{
"id": "e87643735eac2c9",
"message": "改为gradle架构的二开项目",
"title": "改为gradle架构的二开项目",
"timestamp": "2024-11-07T01:26:47+00:00",
"url": "http://*****-se38fbd10f22c2ba54442a015eac2c9",
"author": {
"name": "王",
"email": "wangmail.com"
},
"added": [
"settings.gradle.kts"
],
"modified": [],
"removed": []
},
{
"id": "26d917903d9cbcdd2",
"message": "新增版本控制忽略文件",
"title": "新增版本控制忽略文件",
"timestamp": "2024-11-07T01:24:36+00:00",
"url": "http://****51a41d9cbcdd2",
"author": {
"name": "王***",
"email": "w***il.com"
},
"added": [
".gitignore"
],
"modified": [],
"removed": []
}
],
"total_commits_count": 3,
"push_options": {},
"repository": {
"name": "e10-seconddev-template",
"url": "ssh://*****-seconddev-template.git",
"description": null,
"homepage": "http://*****e/e10-seconddev-template",
"git_http_url": "http://****e10-seconddev-template.git",
"git_ssh_url": "ssh://git@****ddev-template.git",
"visibility_level": 10
}
}
2.1 自动匹配提交的分支
这里推送过来的是post请求,参数存放在body中,使用如下截图中的部分配置

2.2 增加构建描述信息
首先需要定义变量名称currentBuild.description然后给对应的字段进行赋值即可

评论区