Jenkins Groovy comment appeler des méthodes de @NonCPS méthode sans fin pipeline

J'ai besoin d'analyser certains JSON dans un Jenkins Pipeline et appeler des méthodes régulières dans une boucle, cependant le script toujours ferme après le premier appel de fonction. Comment faire cela?

import groovy.json.JsonSlurper
import com.cloudbees.groovy.cps.NonCPS

@NonCPS
def myMethod(String json) {
    def jsonSlurper = new JsonSlurper()
    def jsonObject = jsonSlurper(json)
    jsonObject.each {
        obj ->
            switch(obj.name) {
                case "foo":
                    doAThing(obj)
                    break
                case "bar":
                    doAnotherThing(obj)
                    break
            }
    }
}

Dans l'exemple ci-dessus, même avec un objet json comme:

[{
    "name": "foo"
}, {
    "name": "bar"
}]

...le pipeline toujours ferme après la première itération. Ceci est probablement dû à un mélange de synchronisation et async fonctions. Est-il possible de faire cela?

Avez-vous remarqué la faute de frappe: def jsonObject = jsonSurper(json) (il manque le "l" dans la partie droite)?
C'est juste une faute de frappe dans le post, pas le script en lui-même... Mais bon oeil @izzekil
Vous pourriez avoir face à ceci: issues.jenkins-ci.org/browse/JENKINS-31314 ou: issues.jenkins-ci.org/browse/JENKINS-26481
Oui, question 26481 qui semble être la même.

OriginalL'auteur Fo. | 2016-04-14