2017-12-15 8 views
0

私は毎日100ジョブ実行しているhudsonインスタンスを実行しています。Hudson/jenkins:ビルドが1ヶ月以上経過しているジョブのリストを取得

最後に成功したジョブがx日前だったジョブのリストを取得したいので、そのような不要なジョブを無効にすることができます。

例:ハドソンには、最後に成功したビルドがあり、もはや必要ではない仕事があります。私は、古い仕事のリストを照会して取得する方法が必要です。

答えて

3

次のスクリプトでは、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のためのものです。あなたはHudsonのためにそれを少し修正する必要があります。

0

私はhudsonに感謝@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 
関連する問題