Git 钩子触发自动构建
刚才我们看到在 Jenkins 的内置构建触发器中,轮询 SCM 可以实现 Gitlab 代码更新,项目自动构建,但是该方案的性能不佳。那有没有更好的方案呢? 有的。就是利用 Gitlab 的 webhook 实现代码 push 到仓库,立即触发项目自动构建。
一. 配置 WebHook 实现自动构建
第一步:安装 Gitlab Hook
和 GitLab
插件
第二步:Jenkins 设置自动构建
等会需要把生成的 webhook URL 配置到 Gitlab 中。
第三步:GitLab 开启 WebHook 功能
使用 root 账户登录到后台,点击 Admin Area -> Settings -> Outbound request。
勾选"Allow requests to the local network from web hooks and services"
第四步:在 GitLab 仓库中添加 WebHook
点击项目->Settings->Integrations
钩子新增成功后,我们可以进行测试,看是否能够触发构建:
测试可能会发生错误:
第五步:配置 Jenkins 关闭身份验证,解决拒绝授权的问题
Manage Jenkins->Confifigure Syste->GitLab
第六步:测试
二. 配置优化
在上面的配置中,只要 Gitlab 接收到 Push 事件都会触发项目的构建,这在生产环境中显然是不合理的,我们需要配置只有指定分支的 Push 事件才能够触发构建计划。
第一步:配置允许哪些分支 Push 能够触发推送
点击 configure(Jenkins 项目的 configure)->Build Triggers->Adcanced->Allowed branches
第二步:配置触发构建后,Jenkin 从哪个分支拉取代码
点击 configure(Jenkins 项目的 configure)->Pipeline->Branches to build
注:流水线类型的项目,其他类型的项目操作基本类似
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Jenkins 内置触发器
下一篇: 谈谈自己对于 AOP 的了解
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论