Para detener la ejecución adicional cuando command falla:
command || exit 0
Para continuar la ejecución cuando comando falla:
command || true
Jenkins está ejecutando pasos de compilación de shell usando /bin/sh -xe
por defecto. -x
significa imprimir cada comando ejecutado. -e
significa salir con falla si alguno de los comandos en el script falla.
Entonces, creo que lo que sucedió en su caso es que su comando git salió con 1, y debido al valor predeterminado -e
param, el shell toma el código de salida que no es 0, ignora el resto del script y marca el paso como un error. Podemos confirmar esto si puede publicar su secuencia de comandos de pasos de compilación aquí.
Si ese es el caso, puedes intentar poner #!/bin/sh
para que el script se ejecute sin opción; o haz un set +e
o algo similar en la parte superior del paso de compilación para anular este comportamiento.
Editado:otra cosa a tener en cuenta es que, si el último comando en su script de shell devuelve un código distinto de 0 , todo el paso de compilación aún se marcará como fallido incluso con esta configuración. En este caso, simplemente puede poner un true
comando al final para evitar eso.
Otra pregunta relacionada
Si no hay nada que presionar, git devuelve el estado de salida 1. Ejecutar el paso de compilación de shell se marca como fallido respectivamente. Puede usar la instrucción OR || (tubo doble).
git commit -m 'some messasge' || echo 'Commit failed. There is probably nothing to commit.'
Eso significa, ejecutar el segundo argumento si el primero falló (estado de salida devuelto> 0). El segundo comando siempre devuelve 0. Cuando no hay nada que presionar (salir del estado 1 -> ejecutar el segundo comando), el eco devolverá 0 y el paso de compilación continúa.
Para marcar la compilación como inestable, puede usar el paso posterior a la compilación Jenkins Text Finder. Puede pasar por la salida de la consola, hacer coincidir el patrón (tu eco) y marcar la compilación como inestable.