Comment vérifier l'état de la construction Jenkins sans passer par le navigateur ?
Si nécessaire, je peux créer un script en utilisant l'API JSON, mais je me demandais s'il existait déjà quelque chose de ce type intégré.
Comment vérifier l'état de la construction Jenkins sans passer par le navigateur ?
Si nécessaire, je peux créer un script en utilisant l'API JSON, mais je me demandais s'il existait déjà quelque chose de ce type intégré.
Vous pouvez utiliser un script Groovy :
Via jenkins-cli
echo 'println(jenkins.model.Jenkins.instance'\
'.getItem("<JOB-NAME>").lastBuild.building)' \
| java -jar jenkins-cli.jar -s <JENKINS-URL> groovy =
où =
signifie norme en. Vous pouvez vous authentifier avec --username <USER> --password <PASS>
ou avec -i <SSH-PRIVATE-KEY>
.
echo -e 'println(jenkins.getItem("JOB-NAME").lastBuild.building)\nexit' \
| ssh -p <JENKINS-SSH-PORT> <JENKINS-HOST> groovysh
Heureusement, il existe une jenkins-cli que vous pouvez utiliser pour obtenir des informations de Jenkins. Malheureusement, vous ne pouvez pas récupérer le statut d'un build en utilisant le CLI - ce qui signifie que votre solution d'utiliser l'API JSON n'est pas seulement correcte - c'est la seule façon programmatique de le faire.
En outre, bien qu'il semble que get-job
peut faire ce que vous voulez, mais elle ne renvoie pas le résultat, elle renvoie seulement la configuration du travail.
Vous pouvez essayer avec ceci,
JOB_URL=http://localhost:8080/view/TestTab/job/JobWait
JOB_STATUS_URL=${JOB_URL}/lastBuild/api/json
GREP_RETURN_CODE=0
# Start the build
curl --user "username:password" $JOB_URL/build?delay=0sec
# Poll every 10 second until the build is finished
while [ $GREP_RETURN_CODE -eq 0 ]
do
sleep 10
# Grep will return 0 while the build is running:
curl --user "username:password" --silent $JOB_STATUS_URL | grep result\":null > /dev/null || if [ "$?" == "1" ]; then
exit 0
fi
GREP_RETURN_CODE=$?
done
echo Build finished
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.