En un proyecto en el que estoy trabajando, estamos usando scripts de shell para ejecutar diferentes tareas. Algunos son scripts sh / bash que ejecutan rsync y otros son scripts PHP. Uno de los scripts PHP está ejecutando algunas pruebas de integración que dan salida a JUnit XML, informes de cobertura de código y similares.
Jenkins puede marcar los trabajos como exitosos / fallidos según el estado de salida . En PHP, el script sale con 1 si ha detectado que las pruebas fallaron durante la ejecución. Los otros scripts de shell ejecutan comandos y usan los códigos de salida de estos para marcar una compilación como fallida.
// :: End of PHP script:
// If any tests have failed, fail the build
if ($build_error) exit(1);
En la terminología de Jenkins , una compilación inestable se define como:
Una compilación es inestable si se creó correctamente y uno o más editores informan que es inestable. Por ejemplo, si el editor JUnit está configurado y una prueba falla, la compilación se marcará como inestable.
¿Cómo puedo hacer que Jenkins marque una compilación como inestable en lugar de solo exitosa / fallida al ejecutar scripts de shell?