美文网首页CI/CD
GitLab触发Jenkins构建job

GitLab触发Jenkins构建job

作者: 杨永杰 | 来源:发表于2017-12-06 18:46 被阅读83次

    【原创】转载请标注文章地址

    Jenkins上集成GitLab,当有人push code到GitLab上时,GitLab会触发Jenkins进行相应Job的构建。

    1、在Jenkins上安装好GitLab PluginGitlab Hook Plugin

    安装插件

    2、在gitLab上加上ssh public key

    在装Jenkins的机器上,用jenkins用户或者root用户生成ssh密钥对。如果jenkins是分master和slave的,那就在master上生成密钥对,如果jenkins是运行在docker里的,那就在docker里的jenkins master上生成密钥对。

    生成密钥对:ssh-keygen -t rsa (记得先切换到相用户下root or jenkins,具体操作百度or Google很多),生成的密钥对在对用用户下的.ssh文件夹下,比如root用户,路径就是/root/.ssh

    密钥对

    然后将文件id_rsa.pub里面的内容copy到gitLab上, gitLab-->setting-->SSH Keys

    GitLab上添加公钥

    3、Jenkins上的配置

    3.1 添加credentials

    找到Source Code Management, 点击Add按钮去添加一个credentials

    Add credentials

    只要填三个内容,

    - Kind选择 SSH Username with private key

    - Username自己随意填

    - Private Key填步骤2中生成的私钥(文件id_rsa里的内容)

    add credentials2

    3.2 配置Job触发

    在Job里的configuration里面,勾选Build when a change is pushed to GitLab. GitLab CI Service URL: http://147.128.64.212:8080/project/TEST_RC13_AA_TRIGGER,具体里面的配置都采用默认的,后面按需修改。

    配置Job

    4、在GitLab添加Webhood

    步骤3中,红框框起来的url地址copy出来,然后Paste到GitLab上的对应项目上,GitLab-->project-->NSI-Ansible-->Settings-->Integrations

    配置GitLab

    把url复制到GitLab上,然后点击Add webhook按钮。生成webhook后点击test可以测试,返回Hook executed successfully: HTTP 200就表示成功了,同时Jenkins job也会build起来。

    test webhook

    如果是这样基本完成了,但test的时候有可能返回的是Hook executed successfully but returned HTTP 403,这是没有权限,需要把Jenkins-->Jenkins Manages-->Configure System,找到GitLab配置,去掉勾选。

    去掉勾选

    5、配置branch

    这样子,只有有人push code到GitLab上,我Jenkins的job都会Run,但这有一个问题,这里没能区分Branch,无论提交到哪个branch的code都会触发Jenkins Job,这肯定不是我们希望的,所以还需要在Jenkins上配置。Jenkins-->Job-->configure-->Build Triggers,然后点击图中的红框,配置更多选项。

    点击Advance 配置Branch

    然后在Allowed branches中,选择filter branches by name,在include中填写你要的branch名称,这样就可以按branch触发。当然还能看到可以用正则来匹配branch,按需求来就好。

    6、提高点

    插件是没有提供按文件路径来触发的功能的,比如一个大project,有业务代码,也有test代码,当业务代码更新时触发build业务包的job,当test代码更新时,build FT job,这可以通过写groovy脚本来实现,大家可以去尝试。

    以上有什么问题可以留言给我。

    By Yang Yongjie

    【原创】转载请标注文章地址:http://www.jianshu.com/p/156de44a44c2

    相关文章

      网友评论

      本文标题:GitLab触发Jenkins构建job

      本文链接:https://www.haomeiwen.com/subject/rggqixtx.html