我想触发一个管道,当使用 Jenkins webhook 触发器接收到的事件失败或成功时,它仅触发两种情况。
例如:如果我有一个 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 触发器插件,并在该插件下使用可选过滤器。
安装通用 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>",
)
}