我需要有关Groovy脚本的帮助,以获取Jenkins中所有定期运行的作业,然后启用废弃旧版本(例如30天轮换)的
谢谢
答案 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)
为此,您可以添加“配置切片插件”,这将帮助您为多个作业设置相同的参数。