Comment puis-je vérifier l'état de la génération Jenkins sans passer au navigateur?
Si nécessaire, je peux créer un script à l'aide de l'API JSON, mais je me demandais s'il existait déjà quelque chose comme cela.
Comment puis-je vérifier l'état de la génération Jenkins sans passer au navigateur?
Si nécessaire, je peux créer un script à l'aide de l'API JSON, mais je me demandais s'il existait déjà quelque chose comme cela.
Réponses:
Je ne pouvais pas trouver un outil intégré alors j'en ai créé un:
la source
Vérifiez si une version est en cours d'exécution ou non
J'ai essayé le script Python dans la réponse à cette question, mais je n'ai pas réussi à le faire fonctionner. Je ne connais pas Python et je ne voulais pas investir de temps dans le débogage, mais je pouvais lire suffisamment de script pour en tirer l'inspiration.
Tout ce que j'ai à faire est de vérifier si une version est en cours d'exécution ou non. Pour ce faire, j'ai utilisé curl et grep, comme ceci:
curl http://myjenkins/job/myjob/lastBuild/api/json | grep --color result\":null
result\":null
retournera 0.result\":null
retournera 1.Pas particulièrement élégant, mais cela fonctionne assez bien pour mes besoins.
Par exemple, j'ai un script Bash qui commence une construction, puis attend sa fin:
Merci pour l'inspiration, Catskul!
la source
TypeError: cannot concatenate 'str' and 'NoneType' objects
. Je ne connais pas Python, je me suis donc tourné vers shell et votre réponse pour l'inspiration. Merci!Un ancien de mes collègues a écrit https://github.com/txels/autojenkins qui propose de nombreuses fonctionnalités pratiques et des informations de type API permettant de travailler avec une instance Jenkins de Python ...
la source
Une autre solution Python:
la source
Vous pouvez utiliser un script Groovy:
Via jenkins-cli
, où
=
signifie standard en. Vous pouvez vous authentifier avec--username <USER> --password <PASS>
ou avec-i <SSH-PRIVATE-KEY>
.Via jenkins-cli sur SSH
la source
Je pense avoir trouvé un moyen plus facile. Si j'ai bien compris, vous voulez vérifier le résultat de la construction - si c'est un succès ou un échec, en d'autres termes.
La commande "build" de la CLI de Jenkins change le code de sortie en fonction du résultat de la construction, tant que vous utilisez l' option
-s
ou-f
à la fin.Par exemple,
ou
Notez que l'option va à la fin; ce n'est pas le premier
-s
utilisé pour définir l'URL de l'instance Jenkins.Et puis, pour obtenir le résultat, vous pouvez utiliser
$?
:Si le résultat est 0, c'était un succès. Si c'est autre chose que 0, c'est un échec.
Référence: Je ne peux pas trouver une instance publique Jenkins qui donne accès à cette page, mais il peut être trouvé dans votre instance locale Jenkins:
http://<url of Jenkins Instance>/cli/command/build
. Cela explique également la différence entre-s
et-f
:la source
Vous pouvez utiliser le descripteur symbolique
lastBuild
:L'
result
élément dans la réponse contient une chaîne décrivant le résultat de la construction.la source
Heureusement, il existe un jenkins-cli que vous pouvez utiliser pour obtenir des informations de Jenkins. Malheureusement, vous ne pouvez pas récupérer le statut d'une construction à l'aide de la CLI - ce qui signifie que votre solution d'utilisation de l'API JSON est non seulement correcte, mais constitue le seul moyen de le faire par programme.
De plus, même s'il semble
get-job
pouvoir faire ce que vous voulez, il ne renvoie pas le résultat, il ne renvoie que la configuration du travail.la source
Un autre script pour CMD (Windows):
la source
Tu peux essayer avec ça,
la source