Pipeline de passer des paramètres à l'aval des emplois
Je suis en utilisant Jenkins v2.1 avec la prestation intégrée de pipeline fonctionnalité (https://jenkins.io/solutions/pipeline/) pour orchestrer deux versions (construire et déployer).
Dans mon paramétrée construire, j'ai 3 paramètres de l'utilisateur de l'installation, qui doit également être sélectionné dans le pipeline.
Le pipeline script est comme suit:
node: {
stage 'build'
build job: 'build', parameters: [[$class: 'StringParameterValue', name: 'target', value: target], [$class: 'ListSubversionTagsParameterValue', name: 'release', tag: release], [$class: 'BooleanParameterValue', name: 'update_composer', value: update_composer]]
stage 'deploy'
build job: 'deploy', parameters: [[$class: 'StringParameterValue', name: 'target', value: target]]
}
Cela fonctionne correctement à l'exception de la BooleanParameterValue
. Quand je construire le pipeline, l'erreur suivante est générée:
java.lang.ClassCastException: hudson.model.BooleanParameterValue.value expects boolean but received class java.lang.String
Comment puis-je résoudre ce typecasting erreur?
Ou encore mieux, est-il moins lourd manière dont je peux juste passer TOUS le pipeline des paramètres à l'aval de l'emploi.
- Comment suis-je capable d'utiliser (F. e. imprimer la valeur de 'cible') dans mon aval de l'emploi?
Vous devez vous connecter pour publier un commentaire.
En supposant
était le problème, essayez de
Pas que je sache, du moins pas sans l'aide de Jenkins appels de l'API et de la désactivation de l'Groovy bac à sable.
update_composer.toBoolean()
fonctionne également.Boolean.valueOf
n'a pas 🙂En plus de Jesse Glick réponse, si vous voulez passer des paramètre de chaîne alors utiliser:
build job: 'deploy', parameters: [booleanParam(name: 'target', value: target)]
est le equivalient syntaxe booléen paramètrescomme Jesse Jesse Glick et abguy dit que vous pouvez énumérer chaîne en type Booléen:
ou, au contraire, Boolean en chaîne:
dans mon cas, j'ai dû en aval paramètre Booléen à un autre emploi.
Donc, pour cela, vous aurez besoin d'utiliser la classe BooleanParameterValue :
Jenkins "boolean" les paramètres sont vraiment juste un raccourci pour le "choix du paramètre" type avec le choix codé en dur pour les chaînes de caractères "true" et "false", et avec une case à cocher pour définir la variable de chaîne. Mais à la fin, c'est juste que: une variable de type chaîne, n'ayant rien à voir avec une véritable valeur booléenne. C'est pourquoi vous avez besoin de convertir la chaîne de caractères en une valeur booléenne si vous ne voulez pas faire une comparaison de chaînes de caractères comme:
if (myBoolean == "true")