微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

列出Jenkins过去一年的工作构建细节以及触发构建的用户

如何解决列出Jenkins过去一年的工作构建细节以及触发构建的用户

是否有任何简单的方法可以使用API​​或脚本来获得过去一年在所有作业上执行的所有构建以及作为报告触发该构建的用户的列表?

解决方法

这应该做。从<JENKINS_URL>/script或使用“ 执行系统Groovy脚本”(而不是“执行Groovy脚本”)在Jenkins作业中运行。

已更新:包含主题行中的详细信息。

def jobNamePattern ='.*'   // adjust to folder/job regex as needed
def daysBack = 365   // adjust to how many days back to report on
def timeToDays = 24*60*60*1000  // converts msec to days

println "Job Name: ( # builds: last ${daysBack} days / overall )  Last Status\n   Number | Trigger | Status | Date | Duration\n"

Jenkins.instance.allItems.findAll() {
  it instanceof hudson.model.FreeStyleProject && it.fullName.matches(jobNamePattern)
}.each { job ->
  builds = job.getBuilds().byTimestamp(System.currentTimeMillis() - daysBack*timeToDays,System.currentTimeMillis())
  println job.fullName + ' ( ' + builds.size() + ' / ' + job.builds.size() + ' )  ' + job.getLastBuild()?.result
  
  // individual build details
  builds.each { build ->
    println '   ' + build.number + ' | ' + build.getCauses()[0].getShortDescription() + ' | ' + build.result + ' | ' + build.getTimestampString2() + ' | ' + build.getDurationString()
  }
}
return

样本输出

ITSuppt/sampleApplication ( 4 / 11 )  SUCCESS
   13 | Started by user Ian W | SUCCESS | 2020-10-22T01:57:58Z | 30 sec
   12 | Started by user Ian W | FAILURE | 2020-10-22T01:51:36Z | 45 sec
   11 | Started by user Ian W | SUCCESS | 2020-10-15T18:26:22Z | 29 sec
   10 | Started by user Ian W | FAILURE | 2020-10-15T18:14:13Z | 55 sec

如果您有很多工作和构建,可能会花费很长时间,因此您可能希望限制跳过详细信息以开始或使用工作模式名称。 enter image description here了解更多信息。

或者,根据此Build Javadoc,您可以从Jenkins REST API获取所有作业的所有构建的构建详细信息(其他示例S/O answer)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。