我是Groovy的新手,正在尝试在Jenkins中建立一个postbuild,它使我可以对字符串进行计数,并确定在最后返回多少计数后,构建是否成功。
这是我的示例代码:
class Main { def manager = binding.getVariable("manager") def log = manager.build.logFile.text def list = log def JobCount = list.count {it.startsWith("====") && it.contains("COMPLETE")} if (JobCount == 7) { manager.listener.logger.println("All Jobs Completed Successfully") } else { manager.addWarningBadge("Not All Jobs Have Completed Successfully") manager.buildUnstable() } }
我正在寻找当测试成功完成时打印到控制台的特定字符串。字符串是“ ==== JOB COMPLETE ====”,如果所有7个测试都正确通过,则我应该有该字符串的7个实例。
当前,当我运行此代码时,出现以下错误:
Script1.groovy: 6: unexpected token: if @ line 6, column 5. if (JobCount == 7) ^
任何帮助将不胜感激
manager.build.logFile.text 返回整个文件文本为String。
manager.build.logFile.text
您需要的是readLines():
readLines()
def list = manager.build.logFile.readLines() def JobCount = list.count {it.startsWith("====") && it.contains("COMPLETE")}
并且当然如下所述,Jenkins Groovy Postbuild插件运行Groovy脚本,因此您将摆脱封闭的类声明(Main)
Main