web-dev-qa-db-fra.com

Jenkins - Comment puis-je passer des paramètres de l'amont à l'aval

J'ai 3 versions: A - est la version principale qui contrôle le flux B- Une autre version C- sera exécutée après B . Je veux ajouter un paramètre String sur A pour que l'utilisateur saisisse manuellement une chaîne, et je ne suis pas sûr de savoir comment acheminer ce paramètre vers B. permet de dire qu'il s'agit de mon flux de construction: 

build ("B") build ("C") Je ne sais pas comment transférer le paramètre vers B, devrais-je le faire à partir du flux de construction ou de la configuration de construction B et comment puis-je le faire.

Merci d'avance Alex

6
user3502786

Quelque chose comme ça:

build("B", B_parameter: params["A_parameter"])<br>
build("C")

https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin

3
dspiegel

Une façon de faire est d'utiliser le plugin Parameterized Trigger: https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin

Cela vous permet de déclencher un autre travail en utilisant, mais sans s'y limiter:

* a set of predefined properties 
* properties from a properties file read from the workspace of the triggering build
* the parameters of the current build

Avec Build A, B et C, vous définissez th3m comme constructions paramétrées (c’est-à-dire demander une valeur pour un paramètre). Ceci est un paramètre situé au début de la page de configuration du travail. Par exemple, prenons un paramètre que vous nommez MY_ID. Ceci est maintenant accessible en tant que $ MY_ID dans la construction A. 

Maintenant, lorsque vous construisez A et il demande MY_ID. Ajoutez ensuite une étape de construction dans le travail A pour déclencher "B" avec les paramètres et transmettez-la à tous les paramètres de la construction A. La construction B aura également le paramètre $ MY_ID défini lors de l'exécution de la construction de A. 

2
Ray

Plug-ins paramétré est ce que vous cherchez. Pour plus de détails sur la façon de passer un paramètre de la construction principale à la construction enfant, vérifiez ma réponse dans this link.

2
Technext

Wooooow, donc après quelques heures de lecture de "Quel plugin manque-t-il dans cette équation?", Il s'est avéré qu'aucune de ces réponses ne fonctionnait à cause d'un changement de jenkins appelé SECURITY-170 .

Si vous avez suivi les étapes de cette réponse et que vos paramètres ne sont pas transmis, veuillez vous rendre à cette autre réponse de dépassement de pile qui fournit les détails du problème. Si vous vous sentez trop paresseux et que vous voulez juste vérifier que SECURITY-170 est le noeud du problème, vous pouvez essayer cette solutiontemporaire, car elle ne persiste pas après le redémarrage:

  1. Gérer Jenkins -> Gérer les nœuds -> Sélectionnez votre "maître", quel que soit son nom.
  2. Sélectionnez la console de script
  3. Collez ceci dans et cliquez sur le bouton Run: System.setProperty("hudson.model.ParametersAction.keepUndefinedParameters", "true")
  4. Réessayez la construction qui n'a pas transmis les paramètres

Si cela a fonctionné pour vous, vous pouvez vérifier cette réponse je me suis réuni pour une autre question, mais je vous conseillerais de lire la question et le contexte de ma réponse avant de la tenter.

1

Voici mes scripts de pipeline (Master Build A) pour transmettre les paramètres aux travaux enfants (Child Build B) 

build job: 'svn test', parameters: [string(name: 'srcpath', value: params["mainpath"]), string(name: 'revision', value: params["mainrevision"])]

Je configure 
- mainpath et mainrevision en tant que paramètres de travaux en pipeline, 
- srcpath et révision en tant que paramètres de tâches enfants

0
Harun