Jenkins - 仅在事件失败或成功时触发管道 jenkins webhook 触发器

问题描述 投票:0回答:1

我想触发一个管道,当使用 Jenkins webhook 触发器接收到的事件失败或成功时,它仅触发两种情况。 enter image description here

例如:如果我有一个 JSON 格式的事件日志,如下所示

{"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"}

我希望此事件仅使用正则表达式

"Helm upgrade succeeded"
"Helm upgrade failed"
过滤消息。如果任何其他过滤器与此消息分开,它不应该触发我的管道。

任何关于正则表达式的帮助都会很棒。 尝试过($失败|$成功),(失败|成功)..有效 注意: 我在上述用例中使用 Jenkins webhook 触发器插件,并在该插件下使用可选过滤器。

regex jenkins jenkins-pipeline jenkins-plugins regular-language
1个回答
0
投票

安装通用 Webhook 触发器插件并尝试一下

pipeline {
    agent any
    triggers {
        GenericTrigger(
               genericVariables: [
                       [key: 'payload', value: '$'],
                       [key: 'message', value: '$.message'],
               ],
               regexpFilterText: '$repo_name',
               regexpFilterExpression: '(Helm upgrade succeeded)|(Helm upgrade failed)'
               causeString: 'Triggered by helm ', //give it any cause you want
               token: "<your-token>",
        )
    }
© www.soinside.com 2019 - 2024. All rights reserved.