詹金斯·乔布(Jenkins Job)在24小时内检查失败的工作 [英] Jenkins Job to check failed job within 24 hours
本文介绍了詹金斯·乔布(Jenkins Job)在24小时内检查失败的工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这个脚本给了我所有詹金斯失败的工作.但是,我试图仅查看过去24小时内失败的作业.有没有一种方法可以使我根据时间获得失败的工作?
This script gives me all Jenkins failed jobs. However, I am trying to see failed jobs from last 24 hours only. Is there a way i can get failed job based on time?
def jobBuilds=it.getLastFailedBuild()
jobBuilds.each { build ->
def currentStatus = build.buildStatusSummary.message
if (currentStatus.contains("broken")) {
println "Build: ${build} | Status: ${currentStatus}"
}
}
}
**My Jenkins Console output**
Last Failed Job and Build: 24-hours-job-status #20 | Status : broken since build #18
[Pipeline] echo
Last Failed Job and Build: analyze #29 | Status : broken since build #28
[Pipeline] echo
Last Failed Job and Build: build-status #11 | Status : broken since this build
[Pipeline] echo
Last Failed Job and Build: git-hub-project #4 | Status : broken since this build
[Pipeline] echo
Last Failed Job and Build: job1 #2 | Status : broken since this build
[Pipeline] echo
Last Failed Job and Build: job2 #2 | Status : broken since this build
[Pipeline] echo
Last Failed Job and Build: job3 #2 | Status : broken for a long time
[Pipeline] echo
Last Failed Job and Build: job4 #6 | Status : broken since build #3
[Pipeline] echo
Last Failed Job and Build: success-failed-job #54 | Status : broken since build #53
[Pipeline] End of Pipeline
Finished: SUCCESS
推荐答案
类似于以下内容的解决方案应该会启发您
A solution similar to the following should inspire you
import hudson.model.Job
import hudson.model.Result
import hudson.model.Run
import java.util.Calendar
import jenkins.model.Jenkins
//24 hours in a day, 3600 seconds in 1 hour, 1000 milliseconds in 1 second
long time_in_millis = 24*3600*1000
Calendar rightNow = Calendar.getInstance()
Jenkins.instance.getAllItems(Job.class).findAll { Job job ->
!job.isBuilding()
}.collect { Job job ->
//find all matching items and return a list but if null then return an empty list
job.builds.findAll { Run run ->
job.lastBuild.result == Result.FAILURE && ((rightNow.getTimeInMillis() - run.getStartTimeInMillis()) <= time_in_millis)
} ?: []
}.sum().each{ job ->
println "${job}"
}
这篇关于詹金斯·乔布(Jenkins Job)在24小时内检查失败的工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文