针对 Jenkins的 内置构建触发器中的【轮询模式】,可以自动扫描本地代码是否有更改,然后决定是否要构建项目,不足就是增加系统开销;
有没有更好的方式? 答案是有的。
其实之前我们一直在操作 jenkins 去自动构建项目,这样就一直处于很被动,因为gitlab的提交的代码,我们不知道gitlab什么时候更改了代码,有可能构建时,代码根本就没更新,这样代码就会构建时,就会无意义;要想突破这一点,我们把目光放到gtilab这里,当gitlab一提交代码,那么通知下jenkins,然后再去构建,其实这样就会突破jenkins一直默默做无用功的地位;
GitHook
概念:就是利用Gitlab的webhook实现代码push到仓库,实现触发项目构建;
这样不是jenkins自身内置的构建方式,需要安装相关插件;
需要安装两个插件:Gitlab 和 Githook
这样jenkins这边就操作完了,接下来我们设置jenkins服务器,把jenkins中的url配置到gitlab服务器中,让Gitlab 去通知jenkins构建;
允许发起请求到通知webhooks去构建项目
点击保存 ,目前GitLab的设置就已经配置好了
接下来我们进行配置单个项目的设置,去用来通知jenkins哪个项目代码提交了,需要构建
粘贴gitlab生成的url
然后触发器设置:就push时触发请求,其他按默认设置(或者按需求)
配置好了后可以点击测试
不出意外会测试不通过
这个是因为gitlab已经打开发送jenkins的请求的权限,但是jenkins还没有打开接收外部请求的权限
点击系统配置
往下翻
点击应用后保存,即可实现gitlab只要push代码,jenkins就会接收到gitlab发起的通知,进行构建