Jenkins - Comment obtenir et utiliser en amont info en aval
En amont de l'exécution de travail appelé "Un". Sur le succès de l'exécution des cas de test qui est en aval du projet "B". Mais lors de l'envoi de mail à partir de B, nous avons à intégrer en amont les détails du projet (en amont du projet de nom de, bâtir non) dans le mail. Donc, nous pouvons facilement la carte /corelate l'essai avec l'respectives en amont de l'emploi.
En aval du projet tableau de bord ci-dessous les détails sont affichés.
Started by upstream project Dev_RM_3.0_CI_Test build number 10
originally caused by:
J'ai vérifié dans https://wiki.jenkins-ci.org/display/JENKINS/Building+une+logiciel+projet. mais ne pourrais pas trouver quelque chose d'hériter en aval.
Créé des exemples de travail avec les détails ci-dessous pour afficher les détails de la tâche.
echo $BUILD_NUMBER
echo $JOB_NAME
echo $BUILD_ID
Mais la sortie est
Building on master in workspace /var/lib/jenkins/workspace/env
[env] $ /bin/sh -xe /tmp/hudson970280339057643719.sh
+ echo 1
1
+ echo env
env
+ echo 1
1
Finished: SUCCESS
- Toute aide à hériter en amont de détails en aval de l'emploi?
- Comment obtenir courant des détails de la tâche?
- Double Possible de Comment utiliser la mise en cause dans l'accumulation de nom?
Vous devez vous connecter pour publier un commentaire.
Le message que vous vous référez à votre question "
Started by upstream project "Chained/1-First
" numéro de build 34" par exemple, est disponible dans le jenkins Cause.Jenkins continue la construction amont de l'info dans la cause de l'objet. Si vous utilisez construire DSL ou des Pipelines, vous pouvez l'obtenir en groovy. Sinon, vous pouvez
curl
l'url et l'utilisationjq
pour obtenir le CausePar exemple curl http://localhost:8080/job/Chained/job/2-Second/17/api/json
Ou à partir de la canalisation par exemple:
Vous pouvez obtenir un tas d'informations à partir d' Cause, dans l'attente de tout le script approbations globales ou étape de partage. Vous obtiendrez une valeur null si une cause différente des déclencheurs de cette construction, par exemple, s'engager, ou de l'utilisateur.
import groovy.json.JsonSlurper echo "${BUILD_URL}" sh "curl ${BUILD_URL}/api/json -o my_file.json" fileContents = readFile 'my_file.json' return new JsonSlurper().parseText(fileContents)
Vous pouvez passer à l'amont des variables via des paramètres de conception à l'aval de l'emploi et vous pouvez ensuite y accéder (en aval de l'emploi) en utilisant des choses comme ${MyParameter1} et ${MyParameter2}.
Vous devez:
ParentJobName=${JOB_NAME}
Vous devriez être en mesure de passer dans les trucs de base de cette façon. Rien de plus compliqué que cela, et vous serez probablement mieux d'utiliser un plugin comme la Copie des Artefacts Plugin pour copier des fichiers ou à l'aide de l'Jenkins API dans un système groovy étape pour obtenir/modifier le construire en amont, etc.
L'extension @razboy réponse:
c'est une bonne façon si la Cause ne peut pas être dans la liste blanche dans le bac à sable. J'ai oublié Jenkins API et utilisé la version actuelle de la console de regarder pour la chaîne du déclencheur cause. Vous pouvez essayer d'extraire des données à partir de l'API comme @razboy ou obtenir de console actuelle et grep si vous avez besoin de choses simples. Jenkins API est plus souple pour une logique plus complexe. Pour obtenir de l'aide de l'API,ajouter /api pour construire votre url:
<jenkins_url>/job/<buildUrl>/<buildNumber>/api
Vous pouvez simplement utiliser params.variableName dans votre aval de travail pour récupérer les paramètres passés à partir de votre en amont paramètre d'emploi. Votre en aval de l'emploi ne doivent pas nécessairement être paramétrée de l'emploi.