![](/img/trans.png)
[英]Jenkins Groovy to extract Regex from the Current build log and call REST API?
[英]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.