Em um projeto no qual estou trabalhando, estamos usando scripts de shell para executar tarefas diferentes. Alguns são scripts sh / bash que executam rsync e alguns são scripts PHP. Um dos scripts PHP está executando alguns testes de integração que geram saída para JUnit XML, relatórios de cobertura de código e similares.
Jenkins é capaz de marcar as tarefas como bem-sucedidas / com falha com base no status de saída . No PHP, o script sai com 1 se detectar que os testes falharam durante a execução. Os outros scripts de shell executam comandos e usam os códigos de saída deles para marcar uma construção como falha.
// :: End of PHP script:
// If any tests have failed, fail the build
if ($build_error) exit(1);
Na terminologia do Jenkins , uma construção instável é definida como:
Uma construção é instável se foi construída com sucesso e um ou mais editores relatam que é instável. Por exemplo, se o editor JUnit estiver configurado e um teste falhar, a construção será marcada como instável.
Como posso fazer com que o Jenkins marque uma construção como instável em vez de apenas sucesso / falha ao executar scripts de shell?