🏆(不要错过!)【CI/CD技术专题】「Jenkins实战系列」

2022-02-10  本文已影响0人  码界西柚

配置 GitLab 项目 push 事件的 web Hook(它会把事件信息发送通过URL发送给Jenkins)

配置 GitLab 项目 push 事件的 web Hook(它会把事件信息发送通过URL发送给Jenkins)


image
# GitLab 发送给 Jenkins 的内容
{
    "object_kind": "push",
        "event_name": "push",
        "before": "07e1b053d4f699a13e1abfdddbd7c53e7df1436a",
        "after": "42b8a70696eb3357963b6f076aed49cced0d20de",
        "ref": "refs/heads/release",
        "checkout_sha": "42b8a70696eb3357963b6f076aed49cced0d20de",
        "message": null,
        "user_id": 18,
        "user_name": "xxx",
        "user_username": "liuchengsheng",
        "user_email": "liuchengsheng@xxxxxxx.com",
        "user_avatar": "https://www.gravatar.com/avatar/d640f62f6441a0d232dab26113fc1e32?s=80\u0026d=identicon",
        "project_id": 19,
        "project": {
            "id": 19,
            "name": "test",
            "description": "测试",
            "web_url": "http://code.xxxxxxx.cc/liuchengsheng/test",
            "avatar_url": null,
            "git_ssh_url": "git@code.xxxxxxx.cc:liuchengsheng/test.git",
            "git_http_url": "http://code.xxxxxxx.cc/liuchengsheng/test.git",
            "namespace": "liuchengsheng",
            "visibility_level": 0,
            "path_with_namespace": "liuchengsheng/test",
            "default_branch": "master",
            "ci_config_path": null,
            "homepage": "http://code.xxxxxxx.cc/liuchengsheng/test",
            "url": "git@code.xxxxxxx.cc:liuchengsheng/test.git",
            "ssh_url": "git@code.xxxxxxx.cc:liuchengsheng/test.git",
            "http_url": "http://code.xxxxxxx.cc/liuchengsheng/test.git"
        },
        "commits": [
        {
            "id": "42b8a70696eb3357963b6f076aed49cced0d20de",
            "message": "six\n",
            "timestamp": "2018-06-04T11:12:10+08:00",
            "url": "http://code.xxxxxxx.cc/liuchengsheng/test/commit/42b8a70696eb3357963b6f076aed49cced0d20de",
            "author": {
                "name": "imlcs",
                "email": "15224800531@163.com"
            },
            "added": [

                ],
            "modified": [
                "README.MD"
                ],
            "removed": [

                ]
        }
    ],
        "total_commits_count": 1,
        "repository": {
            "name": "test",
            "url": "git@code.xxxxxxx.cc:liuchengsheng/test.git",
            "description": "测试",
            "homepage": "http://code.xxxxxxx.cc/liuchengsheng/test",
            "git_http_url": "http://code.xxxxxxx.cc/liuchengsheng/test.git",
            "git_ssh_url": "git@code.xxxxxxx.cc:liuchengsheng/test.git",
            "visibility_level": 0
        }
}

安装 Generic Webhook Trigger Plugin 插件

image

新建项目(新版本 jenkins URL 配置中 token 一定要写)


image

自动构建测试,GitLab 用户在指定分支上提交代码触发 Jenkins 构建

设置触发器

image

因为gitlab同意或者直接关闭Merge Request时不需要再次触发构建,所以在这里只处理Open Merge Request Event。
Gitlab webhook URL 部分是用来配置gitlab的,token 也是用来配置gitlab的。
filter branch by name的配置说明下:include表示需要跟踪的target branch用逗号分隔。


image

配置webhook

这里的URL就是上面配置触发器时的获取token的配置同理
配置Merge request events才触发这个webhook

image

至此,目的达到,当开发人员通过gitlab 打开一个merge request时,会自动触发jenkins合并与构建,可以通过配置jenkins的邮件提醒,构建成功后通知管理人员,这时再经过必要的代码review后,管理人员正式同意合并代码,此时不会再触发构建;如果构建失败或其他代码review不通过,则管理人员关闭此合并请求,等待开发人员修改后重新提出申请,此时也不会触发构建。

上一篇 下一篇

猜你喜欢

热点阅读