gitlab本身支持webhook功能, 也就是在代码托管的一些生命周期内
在指定阶段执行若干回调
利用这一点, 我们就可以在push操作的时候, 直接触发jenkins任务构建
从而实现自动化构建
操作步骤
1.安装插件
首先需要在jenkins里面安装GitLab Plugin
简介里面也有说明, 这个插件允许GitLab去触发jenkins构建
2.生成API Token
登陆gitlab, 进入个人设置, 生成Access Token
生成之后记下这个token
(这个token只在这里显示一次, 之后无法查到)
3.添加凭据
回到jenkins当中, 添加凭据
类型选择GitLab API token
( 如果第1步中的插件正确安装就会有这一项, 如果没有可以检查一下插件情况 )
API token粘贴从第2步中获得的token
ID可以不写, 描述自定
4.系统设置
之后进入系统设置, 配置gitlab连接
这里的gitlab地址我使用的是官方的地址, 如果是自己搭建的gitlab环境, 写自己的地址即可
下面的凭据就选第3步当中添加的
之后可以执行一下 Test Connection, 显示SUCCESS则表示token无误, 可以使用
5.配置任务
对要进行触发构建的任务进行配置
在构建触发器一栏勾选Build when a change is pushed to GitLab
详细勾选项如下, 大部分都是默认的
这里可以拿到一个webhook URL
, 记下来
下方可以点击Generate生成一个Secret token
, 记下来
Allowed branches可以设定哪个分支的代码推送可以触发构建, 也可以是所有分支都触发
6.设置webhook
回到gitlab, 设置仓库级的webhook
进入到需要触发构建的仓库
这里的URL和Secret Token, 分别填入在第5步当中获得的webhook URL
和Secret token
下面默认勾选的是push event, 也就是在推送提交到仓库的时候触发, 正好符合我们的需求
下面有Enable SSL verification, 如果jenkins所在的地址添加了合法的ssl可以勾选这项, 否则就不必勾选
之后Add webhook
即可
7.验证
至此已经配置完成, 我们可以尝试提交代码到第6步中设置的仓库里
之后到jenkins里面, 可以看到该任务已经自动触发了构建