Jenkins的Githook自动触发构建

8 篇文章 0 订阅
6 篇文章 0 订阅

Jenkins的Githook自动触发构建

在Jenkins的内置构建触发器中,轮询SCM实现Gitlab代码更新,项目自动构建,但是该方案的性能不佳,那有没有更佳的方案呢?有的,就是利用Gitlab的webhook实现代码push到仓库。立即触发项目的自动构建

原理: Gitlab代码变更,那么他就会发送一个构建请求到Jenkins,从而实现项目构建,好处在于我们可以控制代码提交的一个频率,不是再使用轮询的方式去扫描全部代码,提高性能

安装Gitlab Hook插件

  • Gitlab
  • Gitlab Hook

在可选插件中搜索以上两个插件并下载

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rgk32yT8-1592647983597)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620172445142.png)]

Jenkins设置自动构建

安装完以上插件后会发现在流水线项目的配置中增加了一个触发器,如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BODleEhZ-1592647983600)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620173310660.png)]

这里的配置我们默认就好,点击应用保存

Gitlab配置webhook

首先Gitlab默认是没有开放web hook的功能,需要先去开放 ,然后在配置请求的地址url,当然这里的配置需要使用root账户来完成

开放webhook功能

点击设置 -----> settings --------->Network ----------> Outbound requests

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9UroAc1D-1592647983603)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620173844207.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ySDKpjf-1592647983605)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620174017480.png)]

为项目配置 请求地址url

在项目下点击settings,然后选择Webhooks,如果没有Webhooks就选择Integrations

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WfzLEaG2-1592647983607)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620174809532.png)]

添加之后我们可以来测试一个push事件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RsZkCem4-1592647983609)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620174951253.png)]

发现测试结果返回403:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KsDXaZHP-1592647983610)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620175045474.png)]

这是因为Jenkins默认接受请求需要认证,那么这个时候就要去Jenkins页面配置接受请求时取消认证

在jenkins的系统配置中找到 Gitlab 配置选项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yZ7tE1fF-1592647983611)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620175718098.png)]

点击应用,保存,接下来我们再来到Gitlab 测试push 事件,发送测试请求,结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YdzsnAb4-1592647983612)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620175909751.png)]

200,请求成功,而且在jenkins页面中还发现触发了一次项目构建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m0c0kFOi-1592647983614)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620180047700.png)]

代码变更测试

在项目中增加如下改动并提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UoyNpwqC-1592647983616)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620180356264.png)]

来到Jenkins页面,发现自动构建并部署成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-STVQGMXd-1592647983616)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620180715984.png)]

访问tomcat压面: 完美运行,测试成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7aOzSUfR-1592647983617)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200620180848329.png)]

结语:现在Jenkins的自动化构建已经讲解完毕,即开发人员只要提交自己的代码到版本库就能实现自动打包以及部署功能。无需手动的去打war/jar包再去部署。大大提高开发效率!!!

只要学不死,就往死里学!!!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值