2017-09-22 5 views
1

J'ai un travail Jenkins avec un paramètre de choix dynamique. Le but est que ce paramètre obtienne une liste des branches disponibles dans un repo git, puis retourne uniquement celles que je veux construire les choix de la liste. Je veux à la liste des choix à inclure: dev, qa, & tout ce qui commence par "7.". Par exemple, il retournerait 7,23, 7,33 etc. C'est ce que j'ai maintenant:Jenkins/Groovy Dynamic Choice Parameter Return Modèle spécifique

def list = [] 
def process = "/var/lib/jenkins/GIT/get_branches.sh".execute() 
int ii = 0 
process.text.eachLine { 
    if (it == "dev") { 
    list[ii] = it; ii++ 
    } 
    if (it == "qa") { 
    list[ii] = it; ii++ 
    } 
    if (it ==~ /7.*/) { 
    list[ii] = it; ii++ 
    } 
} 
list 

dev et qa travaillent, mais je ne peux pas obtenir le modèle correspondant pour « 7. * » fonctionne correctement .

+0

Quel est votre problème exact, n'obtenez-vous aucun résultat pour '7' ou pour plusieurs? S'il vous plaît fournir la sortie de 'process.text' et' list' et ce qui manque ou beaucoup en elle. –

+0

Actuellement, la dernière instruction if casse le script et la liste déroulante dans jenkins est vide. Donc 'list' est vide & process.text est une longue liste de branches git. J'ai trouvé une solution que j'ajouterai en guise de réponse, mais les optimisations sont les bienvenues. – brewcrazy

Répondre

0

Voici une solution compacte

def list = [] 
"""foo 
bar 
700 
7.31 
7.32 
7.33 
dev 
qa""".eachLine { 
    switch (it) { 
    case "dev": 
    case "qa": 
    case ~/7\.\d+/: 
     list << it 
    } 
} 
println list 

Sorties: [7.31, 7.32, 7.33, dev, qa]

0

J'ai eu ce de travailler avec ce qui suit, mais je suis ouvert aux suggestions sur la façon de faire mieux:

def list = [] 
def process = "/var/lib/jenkins/GIT/get_branches.sh".execute() 
int ii = 0 
process.text.eachLine { 
    if (it == "dev") { 
    list[ii] = it; ii++ 
    } 
    if (it == "qa") { 
    list[ii] = it; ii++ 
    } 

    def m = it =~ '^7.*' 
    if (m) { 
    list[ii] = it; ii++ 
    } 
} 
list 

Il en résulte la liste déroulante jenkins suivante (qui est ce que je cherchais) :

7.31 
7.32 
7.33 
dev 
qa