我正在嘗試使用Jenkins條件步驟插件來觸發shell腳本,如果當前作業在其日誌中有某種模式,則說「每週保留一個快照」。如何將構建日誌內容與Jenkins條件步驟進行匹配?
我想我需要使用條件步驟插件中的「正則表達式匹配」,但我應該如何配置表達式和標籤值?
感謝
我正在嘗試使用Jenkins條件步驟插件來觸發shell腳本,如果當前作業在其日誌中有某種模式,則說「每週保留一個快照」。如何將構建日誌內容與Jenkins條件步驟進行匹配?
我想我需要使用條件步驟插件中的「正則表達式匹配」,但我應該如何配置表達式和標籤值?
感謝
的第一步是獲取該日誌的內容,這將是輸入正則表達式匹配。
${BUILD_LOG_REGEX,regex="Keep one snapshot per week"}
(注:這是通過設定標籤做在組合框中配置插件時選擇「正則表達式匹配」後,您可以在問號點擊得到像BUILD_LOG_REGEX現有憑證清單可用使用)
何時會被執行,如果日誌實際上包含字符串,返回值將是這樣的:
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...]
]
所以,現在,我們需要找到寫的正則表達式是完全匹配標籤內容,即w仇恨者在外部括號之間,包括空白字符。在上面的例子中,我們可以配置與表達:
^.*\s.*Keep one snapshot per week.*\s\[.*\s*
「\ s」匹配任何空格,製表符或換行符。
那麼你應該在作業日誌是這樣看,確認它是否匹配:
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]