jenkins-Generic Webhook Trigger指定分支构建

简介: jenkins-Generic Webhook Trigger指定分支构建

1 需求分析

一个项目一般会开多个分支进行开发,测试,发布。
例如dev 分支,test分支, prod 分支。 那么想达到这样的一个效果:dev分支写的代码push后不触发Genkins构建,只有test分支push才触发Genkins构建。那该怎么配置呢?

1.1 关键词 :

application/json
option filter ,
$.ref


2、webhooks 是什么?

WebHooks是一种用于实现实时通信和事件触发的机制。它允许应用程序将数据传送到另一个应用程序,而不需要定期轮询或等待请求。当特定事件在一个应用程序中发生时,WebHooks会向另一个应用程序发送一个HTTP请求,并将相关的数据传递过去。这种机制可用于实现各种功能,例如实时数据同步、自动化流程触发、通知和提醒等。

这里我使用是github webhooks , 与 gitlab webhooks使用大同小异。想要的效果:当test分支的代码被Push,触发Jenkins构建代码。

3、配置步骤

3.1 github 里需要的仓库配置:

在这里插入图片描述
注意了,这一步关键,上图content type 设置为上图 aplication/x-www-form-unlrencoded
返回的格式 带有payload。 这时候表达式是设置为 $.payload[0] ,而我们的表达式是 $.ref 需要把content type配置为 application/json

3.2 jenkins 的主要配置

github webhooks 里content type配置为 application/json 返回格式下图:

在这里插入图片描述

上面console output 中 : Generic Cause 的字样,received 返回打印需要按下图配置与勾选print post content 和 print contribute variables
在这里插入图片描述

这时候我们就可以 用 $.ref ,意思是取返回对象里面ref 的值,正常打印是 "refs/heads/dev", "refs/heads/test" 之类的表示不同分支

在这里插入图片描述

3.3 option filter配置用于匹配目标分支 实现指定分支构建

下面 ^(refs/heads/test)$ 就是 匹配$ref (也就是上面配置$.ref ,取到返回对象的ref的值 "refs/heads/dev", "refs/heads/test" 之类的 ,正则匹配的是test分支,也就是test分支才会构建)
在这里插入图片描述
我们也可以在github webhooks 查看表达式(regexpFilterExpression),是否匹配,是否触发构建(triggered 字段为true 是触发构建的意思,false则不触发)

在这里插入图片描述
这样需求就大致实现了
在这里插入图片描述


相关文章
|
17天前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
37 5
|
2月前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
2月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
80 0
|
2月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
224 0
|
4月前
|
Prometheus 监控 Cloud Native
使用 Jenkins 监控和优化构建性能
【8月更文第31天】在软件开发的过程中,构建性能直接影响着开发效率和团队的生产力。一个快速、可靠的构建流程可以显著加快迭代速度,减少等待时间,使团队能够更快地响应变化。Jenkins 作为一款广泛使用的持续集成/持续交付(CI/CD)工具,提供了丰富的功能来帮助开发者监控和优化构建性能。本文将探讨如何利用 Jenkins 的内置工具和外部工具来监控构建性能,并提出一些具体的优化方案。
401 0
|
4月前
|
jenkins 测试技术 持续交付
Jenkins 在多分支项目中的应用
【8月更文第31天】在现代软件开发实践中,分支管理是一项至关重要的策略,它允许开发团队在不同的功能开发、修复bug或进行实验时不会干扰主干代码。随着项目的复杂度增加,维护多个分支并确保它们的质量变得越来越具有挑战性。Jenkins 作为一款流行的持续集成(CI)和持续部署(CD)工具,提供了强大的功能来支持多分支项目的自动化测试和部署。本文将探讨 Jenkins 如何帮助管理多分支项目,并提供具体的代码示例。
116 0
|
4月前
|
jenkins Java 持续交付
jenkins学习笔记之十六:SonarSQube支持多分支
jenkins学习笔记之十六:SonarSQube支持多分支
|
4月前
|
jenkins 持续交付 Windows
Jenkins Pipeline 多分支流水线 Input length = 1
Jenkins Pipeline 多分支流水线 Input length = 1
41 0
|
4月前
|
运维 jenkins Devops
Jenkins 多分支流水线(SVN)
Jenkins 多分支流水线(SVN)
81 0
|
4月前
|
jenkins 持续交付
Jenkins Pipeline 流水线 - Parameters 参数化构建
Jenkins Pipeline 流水线 - Parameters 参数化构建
135 0