詹金斯·乔布(Jenkins Job)在24小时内检查失败的工作 [英] Jenkins Job to check failed job within 24 hours

查看:62
本文介绍了詹金斯·乔布(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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆