Jenkins使用Groovy搁置作业

Jenkins使用Groovy搁置作业,groovy,jenkins,hudson,jenkins-plugins,hudson-plugins,Groovy,Jenkins,Hudson,Jenkins Plugins,Hudson Plugins,我目前正在编写一个脚本,该脚本应该归档去年未使用的所有作业,我找不到任何命令可以搁置这些作业。 你知道怎么做吗? 这是我的剧本: import hudson.model.* jobs = hudson.model.Hudson.instance.items Date date = new Date () currentTimeInMillis = date.getTime(); println "Today is " + date + " In MilSec " + currentT

我目前正在编写一个脚本,该脚本应该归档去年未使用的所有作业,我找不到任何命令可以搁置这些作业。 你知道怎么做吗? 这是我的剧本:

import hudson.model.*


jobs = hudson.model.Hudson.instance.items
Date date  =  new Date ()
currentTimeInMillis = date.getTime();
println "Today is "  + date + " In MilSec  " + currentTimeInMillis


def milSecondInSecond = 1000
def secondsInMinute = 60
def monutesInHour = 60
def secondsInHour = secondsInMinute*monutesInHour
def hoursInDay = 24
def minutesInDay = monutesInHour * hoursInDay
def secondsInDay = minutesInDay*secondsInMinute
def daysInYear = 365.242199
def hoursInYear = daysInYear*hoursInDay
def minutesInYear = hoursInYear*monutesInHour
def secondsInYear = minutesInYear*secondsInMinute
def milSecondsInYear = secondsInYear*milSecondInSecond
println "The milSeconds in year is  " + milSecondsInYear

for (job in jobs) {
    lastbuild = job.getLastBuild() 
    if (lastbuild !=  null) {
        lastbuildInMilSeconds = lastbuild.getTimeInMillis()
        def dif = currentTimeInMillis - lastbuildInMilSeconds
        if (dif > milSecondsInYear) {
            println job.getDisplayName() + "  " + lastbuild.getTimeInMillis()

        }
  }

}
任何关于我应该添加哪些命令的想法,我知道有一个插件用于此,但我想自动化此过程。

选项1:

安装并让Groovy代码调用ShelveProjectTask来执行实际的搁置工作

备选案文2:

阅读的代码,并复制到您的脚本中


选项1听起来更简单、更可靠。您仍然可以享受自动化带来的好处。再加上重用的好处。

如何从代码中调用搁置项目插件?它是Java代码。导入它使用的包并实例化ShelveProjectTask对象。你需要做一些代码阅读,以确保你调用了正确的方法。我还没有找到这个插件的源代码,你有什么办法可以发送给我吗?