Saltar al contenido

no falle la compilación de jenkins si falla la ejecución de Shell

Después de indagar en varios repositorios y páginas de internet finalmente nos hemos encontrado la respuesta que te mostramos aquí.

Solución:

Para detener la ejecución posterior cuando dominio falla:

command || exit 0

Para continuar la ejecución cuando dominio falla:

command || true

Jenkins está ejecutando pasos de construcció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 sale 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, puede intentar poner #!/bin/sh para que el script se ejecute sin opción; o hacer 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 (su eco) y marcar la compilación como inestable.

Si piensas que te ha sido útil nuestro post, nos gustaría que lo compartas con más programadores y nos ayudes a difundir nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *