【Jenkins、Gitlab】GitLab 自动触发 Jenkins 构建
简介:
尽管 GitLab 有内建的 GitLab CI,但它远没有 Jenkins 那么强大好用。
我们向 GitLab push 代码,或执行其它一些操作时,
GitLab 可以将这些事件通知给 Jenkins,trigger Jenkins 工程的构建自动执行。
操作步骤:
1、Gitlab 配置
1.1、创建 个人访问令牌(personal_access_tokens) 进入:用户设置 - 访问令牌 页面。 操作:填写[名称]、范围勾选 [api],点击 ‘创建个人访问令牌’。 注意:该令牌只出现一次,复制后找个地方保存。后面 Jenkins 配置 Gitlab 连接时用。 1.2、配置外部请求 进入:管理中心 - 设置 - 网络 页面。 操作:‘外部请求’ 下勾选 ‘允许Webhook和服务对本地网络的请求’。 注意:少了这步,后面 Gitlab 添加 webhook 时报错。 1.3、创建 Gitlab 项目 创建项目,记录克隆链接,Jenkinis 中配置源码管理用。
2、Jenkins 配置
2.1、安装 Gitlab 支持插件
进入:插件管理 - 可选插件 页面。
操作:搜索 Gitlab 有关插件,勾选插件,点击直接安装。
注意:安装中的问题可 参考
2.2、配置 Gitlab 连接
进入:Jenkins 全局设置页面,配置 Gitlab 模块。
操作:[Connection name]随便写,后面创建项目用。
[Gitlab host URL] Gitlab 所在位置(例如:http://192.168.56.103:8090)
[Credentials]点击后面添加 - 选择 Jenkins,添加凭据,选择刚才添加的凭据(Gitlab API token)。
添加凭据
类型:Gitlab API token
API token:上面 Gitlab 中生成的‘个人访问令牌’。
点击‘Test Connection’显示成功。点击保存。
2.3、创建项目(选择 Freestyle project)
进入:General 页面
操作:[Discard old builds]设置‘保持构建的天数’,‘保持构建的最大个数’。(例如:10/20)
[GitLab Connection]选择上面创建的连接。
源码管理选择‘Git’
[Repository URL]Gitlab 中创建的项目链接。
[Credentials]操作同上‘添加凭据’,类型选择‘Username with password’。选择刚才添加的凭据。
添加凭据
类型:Username with password
用户名:Gitlab 登录名
密码:Gitlab 登录密码
构建触发器
操作:勾选 Build when a change is pushed to GitLab......。记录链接。
点击‘高级’ - ‘Generate’,生成 [Secret token]。记录token。
注意:上面记录的链接、token,后面配置 Gitlab Webhook 用。
点击‘保存’。
3、Gitlab 再次配置
3.1、Gitlab 添加 webhook 进入:Gitlab 项目页面,选择 ‘设置’ - ‘集成’。 操作:[URL]填写上一步记录的链接。 [Secret Token]填写上一步记录的token。 点击‘Add webhook’生成 ‘Project Hooks’。 注意:如果报错可执行上面 1.2。
4、测试
测试1:在生成的‘Project Hooks’中选择刚才添加的进行推送代码测试,接着查看 Jenkins 的‘构建历史’应该是有数据的。
测试2:往上面 Gitlab 的项目中推送代码,Jenkins 也有数据。
5、至此 配置完成
注意:安装中的问题可参考
参考:https://www.jianshu.com/p/eeb15a408d88