【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

https://www.cnblogs.com/bugsbunny/p/7919993.html

https://www.jianshu.com/p/7e8037c63d63

posted @ 2020-04-24 12:38  品味·舍得  阅读(718)  评论(0编辑  收藏  举报