我正在尝试使用Jenkins Conditional步骤插件,如果当前作业在其日志中有某种模式,则触发shell脚本,例如"每周保留一个快照"。
我想我需要使用"正则表达式匹配"从条件步骤插件,但我应该如何配置表达式和标签值?
由于
答案 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]