在 Jenkins 中安装插件
选择 系统管理 -> 管理插件 打开插件管理页面
在 可选插件 中选择 Gitlab Hook Plugin 和 GitLab Plugin
配置 GitLab 用户
创建一个用户或选择一个已有用户,用来让 Jenkins 和 GitLab API 交互。这个用户将需要是全局的管理员或添加进每个组/工程,并作为成员。需要开发者权限来报告构建状态。这是由于,当使用了 ‘Merge when pipeline succeeds’ 功能时,成功的构建状态可以触发合并。GitLab Plugin 的一些功能可能需要其它的一些权限。比如,有一个选项用于在构建成功时,接受 merge request。使用这一功能需要 developer,master 或 owner 级的权限。
选择 Settings -> Account:
拷贝其中的 Private token,稍后在配置 Jenkins 服务器时会用到。
配置 Jenkins 服务器
需要配置 Jenkins 服务器来与 GitLab 服务器通信。
在 Jenkins 中,选择 系统管理 -> 系统设置,在系统设置中找到 GitLab 的部分:
在 Connection name 后的输入框中输入连接名称,在 Gitlab host URL 后的输入框中输入 GitLab 服务器的 URL 地址。点击 Credentials 行最后面的 Add -> Jenkins 按钮,弹出如下对话框,在 * Kind* 后的下拉列表中选择 GitLab API token,并把上一步拷贝的 Private token 粘贴到 API token 后面的输入框中。随后在 Credentials 的下拉框中选择 GitLab API token。
配置 Jenkins 工程
打开 Jenkins 工程的配置页面,找到 构建触发器 的部分,勾选 Build when a change is pushed to GitLab 那一行:
需要记下 Build when a change is pushed to GitLab 那一行中,GitLab CI Service URL: 后面的 URL,后面在配置 GitLab 工程时需要用到。
还要点开右下角的 高级:
随后点击右下角的 Generate 按钮,生成 Secret token,保存这里生成的 Secret token,它同样将用于后面 GitLab 的配置。随后点击左下角的 保存 按钮,保存前面所做的配置。
配置 GitLab 工程
创建一个新的或选择一个已有的 GitLab 工程。然后选择 Settings -> * Integrations*,在 URL 一栏中输入前面保存的 GitLab CI Service URL,在 Secret Token 一栏中输入前面保存的 Secret token,然后选择需要 trigger Jenkins 工程执行构建的事件:
点击绿色的 Add webhook 按钮,完成 webhook 的创建。
创建好了 webhook 之后,点击 Test 下拉框中的 Push events,如下图: