簡體   English   中英

Jenkins Groovy在控制台日志上發布構建插件多行正則表達式

[英]Jenkins Groovy post build plugin multi line regex on console log

我正在嘗試使用Jenkins中的groovy post build插件創建多行正則表達式。 我可以在普通的Jenkins腳本控制台中完成這項工作,但是在將其轉換為post build插件時遇到了麻煩。

這是我要從控制台日志中獲取的文本:

def string """
 TEST SUMMARY:
 [java]  ------------------------------------------------------------
 [java]       268 tests in 69 groups
 [java]       1 errors
 [java]       0 failures
"""

這行代碼將與我在腳本控制台中的內容匹配:

def match = string =~ /(?ms)(TEST SUMMARY.*?failures)/

我已經嘗試使用post build插件進行以下操作:

manager.logContains((?ms)(".*TEST SUMMARY:.*?failures"))

def log = manager.build.logFile
def summary = log =~ /(?ms)(TEST SUMMARY.*?failures)/

def log = manager.build.logFile.text
def summary = log =~ /(?ms)(TEST SUMMARY.*?failures)/

事實證明,問題出在拼寫錯誤,導致正則表達式返回0個匹配項。 作為參考,如果其他人需要這樣做,則正確的語法為:

def log = manager.build.logFile.text
def summary = log =~ /(?ms)(TEST SUMMARY.*?failures)/

從那里您可以提取匹配項,或者像我這樣進一步解析匹配項:

def total = summary[0] =~ /\d+ tests/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM