一. 环境说明

  • 本文使用jenkins版本2.7.2,gitlab版本8.4.4

  • Jenkins可能需要安装gitlab-plugin、gitlab-hook-plugin和build-authorization-token-root-plugin,对应jenkins插件名为gitlab-plugin.jpi,gitlab-hook.jpi,build-token-root.jpi

  • 本文使用插件版本gitlab plugin 1.5.2,gitlab hook plugin 1.4.2,build authorization token root plugin 1.4,插件最好安装最新版,制止某些功效缺失。
    插件github地址:
    gitlab plugin:https://github.com/jenkinsci/gitlab-plugin
    gitlab hook plugin: https://github.com/jenkinsci/gitlab-hook-plugin
    build authorization token root plugin:https://github.com/jenkinsci/build-token-root-plugin

二. 自动触发的四种方式

实现gitlab代码触发jenkins job构建有如下四种方式,请按场景需要选择合适的方式。

  • gitlab hook插件,指定某个job触发

  • gitlab hook插件,不指定job触发

  • gitlab插件,指定job触发

  • build token root插件,指定job实现匿名远程构建

三. 各种方式先容

1) gitlab hook插件,指定某个job触发
前置条件:
安装jenkins安装gitlab hook插件
设置历程

  • 在jenkins中建立job,如hook-test1

  • 获取jenkins登录用户的token
    导航到用户状态页面查看

  • 在gitlab指定的堆栈中设置hook,花样如下:

    http://<jenkins_username>:<jenkins_user_token>@<jenkins_server_ip>/job/<job_name>/build

特点说明
该方式可以触发构建某个jenkins job,瑕玷是无法设定触发构建的分支,任何分支的代码更改都市导致job构建,这样就会导致featrue分支提交代码,而构建其他分支的job。
可触发自由气概和Pipeline类型的job。

2) gitlab hook插件,不指定job触发
前置条件:
安装jenkins安装gitlab hook插件
设置历程

  • 在jenkins中建立job,如hook-test2
    job必须设置source部门使用git

  • 获取jenkins登录用户的token,方式如上文所述

  • 在gitlab指定的堆栈中设置hook,花样如下:

    ,

    皇冠APP下载

    :www.huangguan.us是一个提供皇冠代理APP下载、皇冠会员APP下载、皇冠体育最新登录线路、新2皇冠网址的的体育平台。新皇冠体育官网是多年来值得广大客户信赖的平台,我们期待您的到来!

    ,
    http://<jenkins_username>:<jenkins_user_token>@<jenkins_server_ip>/gitlab/build_now

特点说明
该方式不需要指定jenkins job名称,但必须配合git source使用,可以设定触发构建的分支,依赖与git source中设置的分支。
仅可触发自由气概类型的job。

3) gitlab插件,指定job触发
前置条件:
安装gitlab-hook和gitlab插件
设置历程

  • 在jenkins中建立job,如hook-test3

  • 获取jenkins登录用户的token,方式如上文所述

  • 在gitlab指定的堆栈中设置hook,花样如下:

    http://<jenkins_username>:<jenkins_user_token>@<jenkins_server_ip>/project/<jenkins_job_name>
  • jenkins设置插件
    获取gitlab 用户的access token,按如下步骤天生:

    将天生gitlab access token,添加到jenkins的证书中,选择Gitlab API token类型:

    进入jenkins系统管理——系统设置——Gitlab,设置如下信息:

    进入jenkins job界面设置触发条件:


    详细参数参见官方说明

特点说明
该方式指定触发jenkins job的名称,使用gitlab plugin设置触发的分支以及触发的event,分支设置支持所有门支、牢固分支名称、分支名通配符匹配、分支label四种。在使用分支名通配符匹配时,通过gitBranch变量获取当前触发job的分支名称
可触发自由气概和pipeline类型的job。优先选择此种方式。

4) build token root插件,指定job实现匿名远程构建
前置条件:
安 *** uild authorization token root plugin插件
设置历程

  • 在jenkins中建立job,如hook-test4

  • 获取jenkins登录用户的token,方式如上文所述

  • 天生一个jenkins job需要的远程构建token

    # openssl rand -hex 12
    9c9d5f83e45e73a3df378025

  • 在gitlab指定的堆栈中设置hook,花样如下:

    http://<jenkins_username>:<jenkins_user_token>@<jenkins_server_ip>/buildByToken/build?job=<job_name>&token=9c9d5f83e45e73a3df378025

特点说明
该方式可指定触发jenkins job的名称,可以实现匿名触发构建。瑕玷是任何分支的代码更改都市触发构建。
可触发自由气概和pipeline类型的job。

上述四种方式,各有优瑕玷,建议凭据实际情况选用合适的方式。