理想情况下,我需要一个脚本,以CSV格式输出以下信息,易于导入Excel:
作业名、去年运行次数、总体运行次数、上次运行状态
对于该作业,不输出单个运行详细信息。
在我的Jenkins身上试过了List Jenkins job build detials for last one year along with the user who triggered the build.
但得到一个错误:
java.lang.NullPointerException: Cannot invoke method getShortDescription() on null object
at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
你知道Groovy需要改变什么吗?或者有更好的解决方案吗?
谢谢大家!
1条答案
按热度按时间6fe3ivhb1#
多亏了@daggett和@ian,两个人都成功了。
我选择了IAN:定义作业名称模式=“. ” //根据需要调整到文件夹/作业正则表达式def daysBack = 365 //调整为在def timeToDays = 2460601000上报告的天数//将毫秒转换为daysprintln“作业名称:(构建数量:过去${daysBack}天/总体)最后状态\n 人数|触发器|现况|日期|持续时间\n“Jenkins.示例.所有项目.findAll(){ 作业&& it.fullName.匹配(作业名称模式)}的示例。每个{作业-〉 builds = job.getBuilds(). by时间戳(系统.当前时间毫秒()-返回天数 * 时间到天数,系统.当前时间毫秒()) 打印输入作业.完整名称+ '(' +内部版本.大小()+ ' / ' +作业.内部版本.大小()+ ')' +作业.getLastBuild()?.结果 //单个构建详细信息 构建。每个{构建-〉 打印 ' +内部版本号+ '|“+生成.getCauses()[0]?.getShortDescription()+”|' +生成结果+ '|' +生成.获取时间戳字符串2()+ '|' +生成. getDuration字符串() } }返回