jenkins-Generic Webhook Trigger指定分支构建

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

@TOC


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则不触发)

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


相关文章
|
3月前
|
jenkins Devops 机器人
【DevOps】(五)Jenkins构建给企业微信推送消息
【DevOps】(五)Jenkins构建给企业微信推送消息
144 1
|
5天前
|
jenkins 持续交付
Jenkins Pipeline 流水线 - Parameters 参数化构建
Jenkins Pipeline 流水线 - Parameters 参数化构建
6 0
|
5天前
|
jenkins 持续交付 网络安全
Jenkins Pipeline 流水线 - 完整构建 Pipeline Script 脚本
Jenkins Pipeline 流水线 - 完整构建 Pipeline Script 脚本
8 0
|
2月前
|
敏捷开发 jenkins 测试技术
阿里云云效产品使用问题之如何进行类似于jenkins那样参数化构建
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1月前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
83 0
|
2月前
|
Kubernetes Cloud Native jenkins
云原生时代:从Jenkins到Argo Workflows,构建高效CI Pipeline
基于Argo Workflows可以构建大规模、高效率、低成本的CI流水线
|
3月前
|
存储 jenkins 持续交付
Jenkins 构建环境指南
Delete workspace before build starts(常用) 在每次构建开始前清空工作空间。这确保了每次构建开始时都是在一个干净的环境下进行,避免了旧的文件或数据对新构建的影响。特别是对于需要频繁构建的项目,保持工作空间的干净能够确保构建过程的可靠性。 Use secret text(s) or file(s) (常用) 允许你在构建过程中使用加密的文本或文件作为凭证。这对于需要访问受保护资源的构建任务非常有用,可以安全地存储和使用密码、API 密钥等敏感信息,而不用担心泄漏。
259 2
|
3月前
|
jenkins Shell 持续交付
Jenkins job 创建、参数化、定时构建及时区偏差问题
在Jenkins中创建新任务,步骤:设置任务名,选择自由风格,输入描述并配置丢弃旧构建的规则(保留最近3次)。接着,参数化构建过程,添加字符参数并设定其名称、默认值和描述。在构建触发器中,设定定时构建为每2分钟一次(H2/ * * * *)。在构建阶段执行Shell命令,打印参数param。构建结果显示每2分钟执行一次,保留最近3次构建,参数默认值为Jenkins。定时构建的cron语法详解,并给出常见定时构建示例。当遇到Jenkins显示时间与系统时间不一致(UTC时间差8小时)的问题,解决办法是在Docker启动时添加参数调整时区至上海,确认时区修改成功后,构建历史时间将与系统时间同步。
67 2
|
3月前
|
jenkins 持续交付
Jenkins构建简单流水线
Jenkins构建简单流水线
38 0
|
3月前
|
安全 jenkins 持续交付
Jenkins 构建触发器指南
描述 这个触发器允许你通过发送HTTP请求远程触发Jenkins Job的构建。通常用于将Jenkins集成到自动化流程中,例如在持续集成/持续交付(CI/CD)中。 配置步骤 进入Jenkins Job的配置页面,找到 "构建触发器" 部分。 勾选 "触发远程构建 (例如,使用脚本) / Trigger builds remotely (e.g., from scripts)"。 安全令牌 提供一个安全令牌(Token),确保只有知道令牌的请求才能触发构建。 比如:JENKINS_URL/job/freedom/build?token=TOKEN_NAME JENKINS_URL: 这是你J
377 1