【问题标题】:Hudson/jenkins: Get list of jobs who's build is older than a monthHudson/jenkins:获取构建时间超过一个月的工作列表
【发布时间】:2018-05-29 12:10:47
【问题描述】:

我有一个 hudson 实例正在运行,我每天有 100 个作业在运行。

我想获取最近一次成功的工作是 x 天前的工作列表,以便我可以禁用这些不需要的工作。

示例:hudson 上的一些工作是一年前最后一次成功构建的,现在不再需要了。我想要一种查询和获取旧作业列表的方法。

【问题讨论】:

    标签: jenkins jenkins-plugins hudson hudson-api


    【解决方案1】:

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

    以下是 hudson 的脚本。

    // 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
    

    【讨论】:

      【解决方案2】:

      以下脚本将列出所有超过 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()
        }
      }
      

      您可以通过转到管理 Jenkins -> 脚本控制台来执行它。这是给 Jenkins 的,你可能需要稍微调整一下以适应 Hudson。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多