1、概述

自动触发jenkins,我们希望是根据自己需要的分支构建才自动触发,有选择性构建,而不是全部构建,故有以下插件处理,Generic Webhook Trigger ,可以根据条件做过滤处理。

  • 其实整体思路和github webhook差不多

其他步骤可以参考这篇文章,核心看这篇
github-webhook自动触发jenkins构建

2、安装Generic Webhook Trigger插件

3、配置jenkins构建触发器

其余配置参考上面的文章
只讲构建触发器配置

  • 勾选下面 并且填入ref变量


  • Generic Webhook Trigger主要有: Post content parameters、 Header parameters、Request parameters和Optional filter这几个组成。

  • 其中,Post content parameters是对POST请求数据的处理,其他 Header parameters、Request parameters类似,这些都是匹配请求数据中的param,他会判断是否具有指定的这个参数,具体介绍如下:

2、对于,上图中(1)(2)(3)(4)解释如下:

(1)筛选参数的变量名,这里是ref;
(2)表达式Expression,使用 $.ref表示请求数据中的ref属性,注意这里有一个点;
(3)Optional filter的Expression表示,在Post content
parameters的Expression中匹配到的数据的格式是否匹配,既是与$.ref匹配的数据。这里应该是先确定触发器的名称,就是(4)中指定的变量;
(4)指定触发器的名字;

总的来说,通过(1)(2)(3)(4)的设置,将请求中的ref属性的值和Optional
filter的表达式Expression进行比较,如果匹配则触发Jenkins构建,如果不匹配则不触发。

触发器配置大致如上就行了

4、配置github

5、验证

代码推送了master分支 则自动触发

6、多个项目同时存在的问题

如果你的Jenkins配置了多个Job的话

你可能会发现,使用上边的配置触发指定分支进行自动构建的时候,如果这两个项目都满足了ref 条件,也就是说都有这个分支的话,那么这两个项目都会进行触发!这肯定是不正确的,因此要进行相应的修改,其实Generic Webhook Trigger插件的Post content parameters可以配置多个参数的,因此,我们需要从Git Post Data里边找出来一个可以标识项目的参数名。

  • 查看具体的project参数数据,可以看出一下有几个参数可以作为标识唯一项目的
  • repository.full_name 可以用来做仓库判断



    触发后携带了信息过去
{"jobs":{"blog":{"regexpFilterExpression":"^(refs/heads/master)_(dengzhifeng/blog)$","triggered":true,"resolvedVariables":{"ref":"refs/heads/master","repository.full_name":"dengzhifeng/blog"},"regexpFilterText":"refs/heads/master_dengzhifeng/blog","id":24,"url":"queue/item/24/"}},"message":"Triggered jobs."}

以上匹配就能触发了!完美!

7、总结

和github webhook原理差不多, 都是服务器互相通信请求触发, 但是generic webhook多了一个分析的步骤, 可以拿到post content内容再做解析, content如下 拿到ref代表的分支就能判断是否触发jenkins了。

如果上面步骤漏了一些前置的配置 可以参考这篇文章
github-webhook自动触发jenkins构建

配置时只是中间不一样 前后都一样。

Generic Webhook Trigger 自动化构建jenkins相关推荐

  1. Jenkins+Gitlab+Generic Webhook Trigger插件

    目标: 1.Git被提交代码到对应分支,Jenkins对应的分支触发构建 (原来的方法是设定每分钟轮询的,这种方法能用但是不好). 2.使用Pipeline脚本 方法: 使用Jenkins插件Gene ...

  2. 【Jenkins插件】之Generic Webhook Trigger

    Generic Webhook Trigger 是一款Jenkins插件,安装后会暴露出来一个公共API,该插件接收到 JSON 或 XML 的 HTTP POST 请求后,根据咱们配置的规则决定触发 ...

  3. Jenkins + Generic Webhook Trigger + GitLab自动化部署流程配置

    Jenkins 插件安装与配置 登录Jenkis 进入插件管理并下载插件Generic Webhook Trigger jenkins系统配置中给GitLab授权 进入系统配置 找到并启用gitlab ...

  4. Generic Webhook Trigger 实现特定提交触发自动构建

    Generic Webhook Trigger 实现特定提交触发自动构建 Jenkins与Gitlab联动可以通过webhook的方式来完成,gitlab上自带的webhooks 看似触发方式这么多, ...

  5. Jenkins Generic Webhook Trigger 插件使用

    Coding项目 Webhook 设置 1.进入项目设置 => 开发者选项 => Service Hook => 新建Service Hook 2.根据你的项目选择不同的事件触发类型 ...

  6. Jenkins: 使用Generic Webhook Trigger 插件配置webhook

    Jenkins: 使用Generic Webhook Trigger 插件配置webhook 一.安装Generic Webhook Trigger 插件 插件管理中安装 二.Jenkinsfile ...

  7. Generic Webhook Trigger 远程触发

    jenkins安装Generic Webhook Trigger插件 然后配置如下 最后送上pipeline完整脚本 pipeline {agent anyoptions{ timestamps () ...

  8. 使用Jenkins配置SpringBoot的自动化构建

    相关阅读 1.使用Jenkins配置Git+Maven的自动化构建 2.Jenkins部署Maven多环境项目(dev.beta.prod)的参数设置 3.使用Generic Webhook Trig ...

  9. 码云Webhook触发Jenkins自动构建 - Jenkins演练(一)

    今天自己看着插件文档摸索了一下,实现了git push后Webhook自动触发Jenkins进行代码构建,可通用gitlab.github等平台,中文关于这方面自动部署的文档比较少,所以把我的学习过程 ...

最新文章

  1. 循环小数是分数集合吗_2020年部分CFA国外考场取消,通过率会受影响吗?
  2. 基于HTML5实现的(本地存储)多标签页面元素的复制粘贴
  3. 【Redis】12.Redis删除策略
  4. linux db2 ssl,IBM DB2 Content Manager V83与手工配置SSL
  5. 2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件...
  6. mysql_real_connect阻塞_mysql_real_connect崩溃、未经处理的异常
  7. 求1+2+…+n变态问题的两个很棒的解法
  8. Fedora 24 x86 安装VirtualBox
  9. 微软社区大课堂 - Transform the Datacenter (数据迁移与Windows Server )社区巡讲- 北京站...
  10. Dev ChartControl 显示设置百分比
  11. python怎么接管浏览器_用python操作浏览器的三种方式
  12. SketchUp LayOut 剪贴簿制作技巧
  13. 一款完全仿照E盾的源码(服务端+代理端+客户端)
  14. python爬取网页的内层页_python爬取网页 下一页
  15. 展讯sprd_battery.c 充电驱动
  16. GPU编程 CUDA C++ 数组归约的示例和解释
  17. 刘墉写给女儿的 忠告
  18. 老人与海好词100英文带翻译_The_Old_Man_and_The_Sea_老人与海_中英文对照版_(good)
  19. Android studio模拟器尺寸和真机不一样的原因
  20. 百度快照被劫持 标题描述被篡改的处理过程

热门文章

  1. javac 和 javap工具详解
  2. 5G时代,视频到底是不是下一个移动互联网的风口?
  3. AI公开课:19.03.27韦韬—百度CSS《AI产业面临的安全威胁与挑战》课堂笔记以及个人感悟
  4. uniapp 离线打包
  5. Linux内存从0到1学习笔记(6.6,物理内存初始化之预留内存)
  6. 低亮度人脸检测、附源码——CVPR2021之 Low Light Face Detection【一文读懂】
  7. 计算机网络无权限,无法访问您可能没有权限使用网络资源
  8. Android点击事件、下拉菜单、单选框实例
  9. clipboard实现复制粘贴功能,解决复制成功多次弹出问题.
  10. STM32 PLC底层Keil源码 实现三菱FX2N