1 前言
最近在学习 GitLab,将学习成果做个简要总结,以供大家参考。如有错误,欢迎留言纠正!你的「点赞」或「打赏」将是对我最大的支持和鼓励!
- 官网地址:https://about.gitlab.com/
- 在线文档:https://docs.gitlab.com/ce/README.html
- 本地文档:用户登录后,点击右上角 Help 菜单
- 我的版本:GitLab Community Edition 13.3.4
本次系列文章包括:
- 【学习GitLab】初次安装
- 【学习GitLab】常用设置
- 【学习GitLab】角色与权限
- 【学习GitLab】hook
- 【学习GitLab】集成Jenkins
- 【学习GitLab】集成Redmine
2 如何集成Jenkins
通过 GitLab 的 webhook 功能,可以实现代码 Push 后,自动触发 Jenkins 的构建动作。要实现该功能,GitLab 和 Jenkins 两边都要做配置。
2.1 Jenkins配置
首先,需要 Jenkins 先安装 Gitlab Hook Plugin 插件。登陆Jenkins,在【系统管理 > 管理插件 > 可选插件】中选择 Gitlab Hook Plugin 插件安装,如下图所示:
之后,在 Jenkins 的每个项目(没有项目就新建一个)的【配置 > 构建触发器 > 构建触发器】里就能看到 Build when a change is pushed to GitLab(只有安装了 Gitlab Hook Plugin 插件才能看到),勾选使能,并记住其中的 webhook URL 地址(等下GitLab中要用到),如下图所示:
上图点击【高级】按钮,点击 Generate 生成 Secret Token(等下GitLab中要用到),如下图所示:
至此 Jenkins 的配置算完成了。
2.2 GitLab配置
登录 GitLab 进入项目的【设置 > Webhooks】页面,增加一项 webhook,填入前面 Jenkins 的 webhook URL 和 Secret Token,如下图所示:
点击【Add webhook】按钮,添加成功后,点击【测试】菜单进行测试,如果提示:
Hook executed successfully: HTTP 200
表明配置成功,此时 Jenkins 相应地会触发一次构建。同样地,往 GitLab 服务器 push 代码后,也会自动触发 Jenkins 对应项目的构建工作。
如果提示:
Hook execution failed: xxx Requests to localhost are not allowed
GitLab 管理员登录 > 管理中心 > 设置 > 网络 > 外发请求 > 展开,勾选 【允许Webhook和服务对本地网络的请求】即可。