2017-11-24 3 views
0

Aufgrund eines Skriptfehlers haben wir eine Reihe von Jenkins Jobs, die auf unserem Server mit 'None' enden. Ich möchte sie mit einem groovigen Skript löschen. In der jenkins-Skriptschnittstelle:groovy regex in jenkins

Dies führt zu keinen Ergebnissen. Ich kann immer noch die 'None'-Jobs über die Jenkins-Suchtextbox finden, also weiß ich, dass sie da sind.

Was ist daran falsch?

Antwort

0

Es stellt sich heraus, dass der Code-Schnipsel, den ich kribbelt, keine Ordner berücksichtigt. Dieses Skript findet alle Jobs in allen Ordnern:

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) 
     } 
    } 
}