You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Jenkins Webhook Trigger仅在事件成功/失败时触发流水线

Jenkins Webhook Trigger 正则过滤解决方案

需求说明

通过Jenkins Webhook Trigger插件实现:仅当收到的JSON事件中message字段值为**"Helm upgrade succeeded"或"Helm upgrade failed"**时触发流水线,其他事件不触发。此前尝试($failed|$success)、(failed|success)等正则均无效。

事件日志示例:

{"involvedObject":{"kind":"HelmRelease","namespace":"flux-system","name":"my-release","uid":"1f86243d-bcd9-4e0a-b078-c9df8f9441ac","apiVersion":"helm.toolkit.fluxcd.io/v2beta1","resourceVersion":"1466894"},"severity":"info","timestamp":"2023-10-25T06:20:18Z","message":"Helm upgrade succeeded","reason":"info","metadata":{"revision":"6.5.2"},"reportingController":"helm-controller","reportingInstance":"helm-controller-578bd944df-m9sgx"}

正确正则表达式

根据插件的匹配方式选择对应正则:

  • 针对完整请求体匹配:如果插件只能对整个JSON payload做正则校验,使用绑定字段名的完整正则,确保匹配的是message字段的目标值:
    "message":"Helm upgrade (succeeded|failed)"
    
  • 针对提取后的message字段匹配:如果插件支持通过JSON路径提取message字段的值(比如使用$.message),直接对字段值做匹配即可:
    Helm upgrade (succeeded|failed)
    

此前正则无效的原因

  1. ($failed|$success):$表示字符串结尾,而目标字符串是Helm upgrade succeeded,结尾为ed,并非直接以failed/success结尾,因此无法匹配。
  2. (failed|success):未关联message字段,可能匹配到JSON中其他包含该关键词的字段,或者插件未将匹配范围限定到message字段,导致触发逻辑不符合预期。

内容的提问来源于stack exchange,提问作者damini chopra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:46:14