在我正在研究的项目中,我们正在使用Shell脚本执行不同的任务。有些是运行rsync的sh / bash脚本,有些是PHP脚本。PHP脚本之一正在运行一些集成测试,这些测试将输出到JUnit XML,代码覆盖率报告等。
Jenkins能够 根据 退出状态 将作业标记为成功/失败 。在 PHP中,如果脚本 在运行期间检测到测试失败, 则以1退出 。其他shell脚本运行命令并使用其中的退出代码将构建标记为失败。
// :: End of PHP script: // If any tests have failed, fail the build if ($build_error) exit(1);
在Jenkins术语中,不稳定的构建定义为:
如果构建成功构建并且一个或多个发布者报告该构建不稳定,则该构建不稳定。例如,如果配置了JUnit发布者并且测试失败,则将构建标记为不稳定。
运行Shell脚本时,如何让Jenkins将构建标记为不稳定,而不仅仅是成功/失败?
使用Text-finder插件。
而不是退出状态1(这将使构建失败),请执行以下操作:
if ($build_error) print("TESTS FAILED!");
在生成后操作中,将启用“文本查找器”,设置正则表达式以匹配您打印的消息(TESTS FAILED!),然后选中该条目下的“如果找到则不稳定”复选框。
TESTS FAILED!