使用groovy脚本定期构建所有jenkins作业

时间:2020-07-20 00:07:56

标签: jenkins groovy

我需要有关Groovy脚本的帮助,以获取Jenkins中所有定期运行的作业,然后启用废弃旧版本(例如30天轮换)的

谢谢

2 个答案:

答案 0 :(得分:0)

我写了一些可能对其他人有用的东西,希望有人可以验证:)

def daysToKeep = 30
def numToKeep = -1
def artifactDaysToKeep = -1
def artifactNumToKeep = -1
jenkins = Hudson.instance
def count=0
import hudson.model.*
import hudson.triggers.*
for(item in jenkins.model.Jenkins.instance.getAllItems(hudson.model.Job.class))
{  
  def timerTrigger = item.triggers.get(Jenkins.instance.getDescriptor(hudson.triggers.TimerTrigger.class));
  def className = item.getClass();
  def buildDiscarder = item.getBuildDiscarder()
  if (item.class.canonicalName == "hudson.model.FreeStyleProject") {
  if( buildDiscarder != null && item.disabled==false && timerTrigger) {
  count+=1
  if (timerTrigger) {
      schedule=timerTrigger.spec
  }
  def lastBuild = item.getLastBuild()? item.getLastBuild().number: "Never built once";
  def lastBuildOnDate = item.getLastBuild()? item.getLastBuild().getTime():"Never built once"
  def url = item.getUrl()
  def schedule=''
  println("=====================")
  println "$count, $item.fullName, disabled=$item.disabled, Last Build On:$lastBuildOnDate"
  println("JOB: " + item.name)
  println jenkins.getRootUrl()+item.getUrl()+'configure'
  item.buildDiscarder = new hudson.tasks.LogRotator(daysToKeep,numToKeep, artifactDaysToKeep, artifactNumToKeep)
  item.save()
  println("")
}
}
}

答案 1 :(得分:0)

为此,您可以添加“配置切片插件”,这将帮助您为多个作业设置相同的参数。

相关问题