当前位置: > 其它学习 > Git >

Jenkins设置GitLab push事件发生时自动构建

时间:2019-02-01 15:57来源:linux.it.net.cn 作者:IT
下面的步骤建立在已经新建好一个item之后,这里主要讲解如何设置Gitlab 上的project 有push事件时,触发Jenkins构建。
 
设置工作空间
工作空间就是要指定你的项目在哪台机器以及哪个目录下构建。
 
设置工作节点和自定义工作目录。
这里写图片描述
 
 
 
其中红线1部分是设置构建的结点(也就是在哪台机器上构建你的项目,可以是本地自己的电脑也可以是远程服务器),这里节点的名称是在系统配置里设置的节点。 
红线2部分则是节点机器上的某一个目录路径(也就是将你的项目放置在该目录下)。显示名称则是在Jenkins网页上显示的project名称。配置为空则显示的是新建item时使用的名称。如下图:
 
这里写图片描述
 
源码管理
添加代码远程仓库的地址,以及其他配置。这里选择GIT。
 
这里写图片描述
 
Repository URL里填写代码仓库的地址,Credentials,则是在Jenkins里配置的用于拉取代码的用户。
 
Branches to build填写要拉取的代码分支,设置了具体的分支名后,同时Jenkins也只会跟踪远程仓库该分支的改动,也就是说只有该分支上的内容有了改变才会触发。具体的触发设置看下文中的构建触发器。
 
构建触发器
构建触发器的设置经常使用的有三种:定时构建(不管有没有代码有没有变化)、定时轮询构建(定时轮询代码仓库,有改动才会构建)、远程仓库接收到push事件时构建(也就是有人向远程仓库成功的push了代码)。这里主要讲这三种触发方式。 
 
这里写图片描述
 
Build periodically(定时的构建)。 
此时的定时构建是时间到达日程表所设置的时间后,就开始构建。此时不管前面源码管理处设置的分支是上的内容是否有变化都会开始构建。例如:在日程表的白框里填写H/30 * * * *,表示每隔30分钟构建一次。具体的定时语法写法课点击旁边的蓝色?图标查看。
 
Poll SCM 
这个也是定时构建,但不同的是在达到所设置的时间后,系统会去轮询设置的远程仓库是否有变化,有变化才构建。例如:在日程表的白框里填写H/30 * * * *,表示每隔30分钟就检测一下远程仓库是否有变化,有变化就开始构建,没有变化则不构建。
 
当有人成功的向仓库push代码时,触发构建。 
选择Build when a change is pushed to GitLab这个选项。打开”高级”按钮,如下图红圈1标识部分:
 
配置
 
1)在上图红圈2部分设置需要跟踪变化的分支,根据上面的选项配置,可以是允许全部分支的变化触发构建,也可以设置只是具体的某些分支触发,这里示例是允许master分支上的变化触发构建。
 
2)要想Gitlab上仓库有push事件发生时触发构建,还需要进一步的设置。在Gitlab上找到要构建的项目,在侧栏找到点击设置图标,找到webhook,点击进入。
 
这里写图片描述
 
3)点击webhook进入的页面如下图所示:
这里写图片描述
 
 
URL部分复制上述步骤“当有人成功的向仓库push代码时,触发构建”中的图片上红圈1部分的http地址;Secret token则填写的是红圈3部分(要先点击generate生成);然后再Tigger中勾选push events,表示当有代码push到该仓库时触发,最后点击末尾Add Webhook保存。
 
之后在Jenkins的item设置中设置好构建环境、构建步骤、以及构建后操作。当Gitlab上我们添加了webhook的的项目有代码push的时候,便可以自动触发Jenkins的构建。
 


(责任编辑:IT)
------分隔线----------------------------