Dans un projet sur lequel je travaille, nous utilisons des scripts shell pour exécuter différentes tâches. Certains sont des scripts sh / bash qui exécutent rsync, et d'autres sont des scripts PHP. L'un des scripts PHP exécute des tests d'intégration qui sortent vers JUnit XML, des rapports de couverture de code, etc.
Jenkins est capable de marquer les travaux comme réussis / échoués en fonction de l' état de sortie . En PHP, le script se termine par 1 s'il a détecté que les tests ont échoué lors de l'exécution. Les autres scripts shell exécutent des commandes et utilisent les codes de sortie de celles-ci pour marquer une construction comme ayant échoué.
// :: End of PHP script:
// If any tests have failed, fail the build
if ($build_error) exit(1);
Dans la terminologie Jenkins , une construction instable est définie comme suit:
Une compilation est instable si elle a été créée avec succès et qu'un ou plusieurs éditeurs la signalent comme instable. Par exemple, si l'éditeur JUnit est configuré et qu'un test échoue, la génération sera marquée comme instable.
Comment puis-je faire en sorte que Jenkins marque une construction comme instable au lieu de réussir / échouer uniquement lors de l'exécution de scripts shell?