如何将构建日志内容与Jenkins条件步骤匹配?

时间:2017-03-09 05:02:49

标签: jenkins-plugins

我正在尝试使用Jenkins Conditional步骤插件,如果当前作业在其日志中有某种模式,则触发shell脚本,例如"每周保留一个快照"。

我想我需要使用"正则表达式匹配"从条件步骤插件,但我应该如何配置表达式和标签值?

由于

1 个答案:

答案 0 :(得分:1)

第一步是获取日志内容,这将是正则表达式匹配的输入。这可以通过将Label设置为:

来完成
${BUILD_LOG_REGEX,regex="Keep one snapshot per week"}

(注意:选择&#34;正则表达式匹配&#34;在配置插件时,在组合框中,您可以单击问号以获取可用的BUILD_LOG_REGEX等现有标记列表)< / p>

当执行此操作时,如果日志实际包含字符串,则返回的值将类似于:

Label=[[...truncated 1515 lines...]
[INFO] [05:10:55.472] -> Keep one snapshot per week between 2016-03-10 and 2017-02-09
[...truncated 22 lines...]
]

所以现在,我们需要找到与标签内容完全匹配的正则表达式,即外部括号之间的任何内容,包括空白字符。在上面的例子中,我们可以配置Expression with:

^.*\s.*Keep one snapshot per week.*\s\[.*\s*

&#34; \ S&#34;匹配任何空格,制表符或换行符。

然后你应该在工作日志中看到这样的东西,确认它匹配:

Regular expression run condition: Expression=[^.*\s.*Keep one snapshot per week.*\s\[.*\s*], Label=[[...truncated 1515 lines...] [INFO] [05:10:55.472] -> Keep one snapshot per week between 2016-03-10 and 2017-02-09 [...truncated 22 lines...] ] Run condition [Regular expression match] enabling perform for step [Execute shell]