侧边栏壁纸
博主头像
程序员の小站博主等级

行动起来,活在当下

  • 累计撰写 51 篇文章
  • 累计创建 35 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

GitLab与Jenkins的集成

Administrator
2024-11-21 / 0 评论 / 0 点赞 / 0 阅读 / 8224 字
温馨提示:
本文最后更新于 2024-11-21,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 配置Gitlab的提交流水线

在需要配置的项目上配置一个通用的触发器,并且创建一个请求参数runOpts用来区分流水线执行的时候是自动触发还是手动触发。如果想要自动触发流水线还需要配置一个Token来给gitlab使用。Token一般会使用项目的名称或者自定义的字符串
配置一个通用的触发器
创建请求参数
创建Token
在新版本的Gitlab中需要调整一下网络的请求限制,否则配置完勾子后会报一个无效的网络连接。下图是修改网络请求,需要说明一点,这里要使用系统管理员的账号
image.png

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

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中,使用如下截图中的部分配置
image.png

2.2 增加构建描述信息

首先需要定义变量名称currentBuild.description然后给对应的字段进行赋值即可
image.png

2.3 过滤特殊push请求

0

评论区