2017-11-24 14 views
0

スクリプトエラーのため、私たちのサーバ上ではJenkinsのジョブは「None」で終わっています。私はグルーヴィースクリプトでそれらを削除したい。ゲンキンズのスクリプトインターフェースでは、groovy regex in jenkins

import jenkins.model.* 

def matchedJobs = Jenkins.instance.items.findAll { job -> 
    job.name =~ /.*None/ 
} 

matchedJobs.each { job -> 
    println job.name 
    //job.delete() 
} 

この結果はありません。私はまだJenkinsの検索テキストボックスから 'None'のジョブを見つけることができるので、彼らはそこにいることを知っています。

この問題は何ですか?

答えて

0

I cribbedのコードスニペットはフォルダを考慮しないことが判明しました。このスクリプトは、すべてのフォルダ内のすべてのジョブを検出します。

import jenkins.* 
import jenkins.model.* 
import hudson.* 
import hudson.model.* 

import hudson.scm.* 
import hudson.tasks.* 
import com.cloudbees.hudson.plugins.folder.* 


jen = Jenkins.instance 

jen.getItems().each{ 
    if(it instanceof Folder){ 
     processFolder(it) 
    }else{ 
     processJob(it) 
    } 
} 

void processJob(Item job){ 
    if (job.name ==~ /.*None$/){ 
    println job.name 
    } 
} 

void processFolder(Item folder){ 
    folder.getItems().each{ 
     if(it instanceof Folder){ 
      processFolder(it) 
     }else{ 
      processJob(it) 
     } 
    } 
}