Hudson / jenkins:获取构建时间超过一个月的工作列表

问题描述 投票:0回答:2

我有一个哈德森实例运行,我每天都有100个工作。

我想得到一份工作清单,上次成功的工作是x天,所以我可以禁用这些不需要的工作。

示例:哈德森有一些工作,这些工作一年前成功建造,不再需要了。我想要一种查询和获取旧作业列表的方法。

jenkins jenkins-plugins hudson hudson-api
2个回答
5
投票

以下脚本将列出所有超过30天的作业(将第一个变量更改为不同的天数):

// Set how old the jobs to list should be (in days)
def numDaysBack = 30


def cutOfDate = System.currentTimeMillis() - 1000L * 60 * 60 * 24 * numDaysBack

for (job in Jenkins.instance.getAllItems(Job.class)) {
  build = job.getLastSuccessfulBuild()
  if (build != null && build.getTimeInMillis() < cutOfDate) {
    println job.getFullName()
  }
}

您可以通过转到Manage Jenkins - > Script console来执行它。这是詹金斯,你可能需要稍微改编一下哈德森。


0
投票

我修改了@Jon的帖子,以适应哈德森的感谢@jon。

下面是哈德森的剧本。

// Set how old the jobs to list should be (in days)
def numDaysBack = 30
def cutOfDate = System.currentTimeMillis() - 1000L * 60 * 60 * 24 * numDaysBack

//Initiallize it to zero
def oldJobsNumber = 0
def size = hudson.model.Hudson.instance.getItems().size()
println "Total Number of Jobs on hudson :" + size


for (i=0;i<size;i++){
def  allJob= hudson.model.Hudson.getInstance().getItems().get(i).getAllJobs()

 def job =new ArrayList(allJob).get(0)
 if (job != null && job .getLastBuild() != null && job.getLastBuild().getTimeInMillis() < cutOfDate) {
    println job.getFullName()
  oldJobsNumber++
  }
}
println oldJobsNumber
© www.soinside.com 2019 - 2024. All rights reserved.