Comment obtenir un objet JSON arrière à partir d'un Jenkins construire demande
Similaire à la façon dont http://localhost/jenkins/job/job_name/25/api/json
serait de retour d'un JSON
objet avec les détails de construire 26, il est un moyen d'obtenir un objet de ce type d'entreprendre le travail, c'est à dire, avant de savoir ce que le numéro de build est?
J'ai remarqué que la sortie d'un curl
requête post à la construction de l'url renvoie html
qui comprend un numéro de build; cependant, je préférerais ne pas avoir à analyser ce en faveur d'avoir un JSON
objet avec le numéro de build en elle. Actuellement, je suis en utilisant:
curl -v --data "param1=value¶m2=value" \
http://localhost/jenkins/job/job_name/buildWithParameters
qui déclenche le travail de l'amende et des sorties un tas de html
. Est-il un moyen de commencer ce travail et recevoir un JSON
objet avec le numéro de build?
Vous devez vous connecter pour publier un commentaire.
Si vous interrogez
http://localhost/jenkins/job/job_name/api/json
vous pouvez récupérer l'nextBuildNumber
champ à tout moment qui vous donnera le prochain numéro de build.Lorsque vous déclencher un build, vous pouvez être assuré de la génération d'obtenir exactement ce numéro.
nextBuildNumber
retourne encore 38 même si 38 est pris par la file d'attente de construction. Il met à jour uniquement à 39 une fois que la file d'attente construire a commencé. Je suppose que je pourrais compte pour cela sur ma fin, certains comment.queueItem
, mais qui n'ont pas de numéros de version dans il.. ne sais Pas maintenant, besoin d'exécuter quelques tests.curl .../job_name/api/json | python -mjson.tool
vous pouvez obtenir un readabale sortie json par la voie.La nextBuildNumber peut-être pas le bon numéro de build dans tous les cas. Si vous avez déclenché deux différentes versions de la même Tâche, nous ne savons pas ce qui a déclenché la première. Il y a une condition de course ici. La vérification de l'accumulation de la file d'attente ne peut pas donner le bon numéro de build soit.
Dès que la construction a été déclenchée, vous pouvez obtenir l'URL de retour à partir de:
Ce sera le retour de la course de construire si il y en a un, ou le dernier achevé de construire autrement. Vous pouvez ensuite ajouter "/api/json" pour que l'URL pour obtenir votre construction de l'objet JSON.
Dans mon scénario j'avais besoin d'un JSONP type de données à parcourir. Ce que j'ai fait est d'obtenir le raw objet de mon travail de Jenkins, de sorte que je peux manipuler en tant que de besoin.
Demande:
Réussite appel:
Ensuite, obtenir l'info dont vous avez besoin, tels que: