¿Cómo verifico el estado de compilación de Jenkins sin cambiar al navegador?
Si es necesario, puedo crear un script usando la API JSON, pero me preguntaba si ya hay algo como esto incorporado.
scripting
command-line-interface
jenkins
Catskul
fuente
fuente
Respuestas:
No pude encontrar una herramienta integrada, así que hice una:
fuente
Verifique si una compilación se está ejecutando o no
Intenté el script de Python en la respuesta a esta pregunta, pero no pude hacerlo funcionar. No conozco Python, y no quería invertir tiempo en la depuración, pero pude leer lo suficiente del script para inspirarme.
Todo lo que necesito hacer es verificar si una compilación se está ejecutando o no. Para hacer eso usé curl y grep, así:
curl http://myjenkins/job/myjob/lastBuild/api/json | grep --color result\":null
result\":null
devolverá 0.result\":null
devolverá 1.No es especialmente elegante, pero funciona lo suficientemente bien para mis necesidades.
Por ejemplo, tengo un script Bash que comienza una compilación, luego espera a que termine:
Gracias por la inspiración, Catskul!
fuente
TypeError: cannot concatenate 'str' and 'NoneType' objects
. No conozco Python, así que cambié a usar shell y hice +1 en tu respuesta para inspirarte. ¡Gracias!Un ex colega mío escribió https://github.com/txels/autojenkins que tiene un montón de características de conveniencia y cosas de tipo API para trabajar con una instancia de Jenkins de Python ...
fuente
Otra solución de Python:
fuente
Puedes usar un script Groovy:
Via jenkins-cli
, donde
=
significa entrada estándar. Puede autenticarse con--username <USER> --password <PASS>
o con-i <SSH-PRIVATE-KEY>
.Via jenkins-cli sobre SSH
fuente
Creo que encontré una manera más fácil. Si entendí correctamente, desea verificar el resultado de la compilación, en otras palabras, si fue un éxito o un fracaso.
El comando "compilar" de Jenkins CLI cambia el código de salida según el resultado de la compilación, siempre que use la opción
-s
o-f
al final.Por ejemplo,
o
Tenga en cuenta que la opción va al final; no es el primero
-s
, que se usa para definir la URL de la instancia de Jenkins.Y luego, para obtener el resultado, puede usar
$?
:Si el resultado es 0, fue un éxito. Si es algo diferente a 0, fue un fracaso.
Referencia: No puedo encontrar un ejemplo Jenkins pública que da acceso a esta página, pero puede ser encontrado en su instancia local Jenkins:
http://<url of Jenkins Instance>/cli/command/build
. También explica la diferencia entre-s
y-f
:fuente
Puedes usar el descriptor simbólico
lastBuild
:El
result
elemento en la respuesta contiene una cadena que describe el resultado de la compilación.fuente
Afortunadamente, hay un jenkins-cli que puedes usar para obtener información de Jenkins. Desafortunadamente, no puede recuperar el estado de una compilación usando la CLI, lo que significa que su solución de usar la API JSON no solo es correcta, sino que es la única forma programática de hacerlo.
Además, aunque parece que
get-job
podría hacer lo que desea, en realidad no devuelve el resultado, solo devuelve la configuración del trabajo.fuente
Otro script para CMD (Windows):
fuente
Puedes intentar con esto,
fuente