gpt4 book ai didi

api - 列出过去一年的 Jenkins 作业构建详细信息以及触发构建的用户

转载 作者:行者123 更新时间:2023-12-02 19:09:37 26 4
gpt4 key购买 nike

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

最佳答案

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

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

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 Job && 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

如果您有大量作业和构建,则可能需要很长时间,因此您可能需要限制跳过详细信息以启动或使用作业模式名称。 Build Javadoc了解更多信息。

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

关于api - 列出过去一年的 Jenkins 作业构建详细信息以及触发构建的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64501034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com