在我正在处理的项目中,我们使用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发布服务器,并且测试失败,那么构建将被标记为不稳定。
如何让Jenkins在运行shell脚本时将构建标记为不稳定的,而不仅仅是成功/失败?
发布于 2021-12-14 10:24:42
除了所有其他答案之外,jenkins还允许使用unstable()
方法(在我看来,这个方法更清楚)。此方法可与描述构建不稳定的消息参数一起使用。
除此之外,您还可以使用shell脚本(bat或sh)的returnStatus
来启用它。
例如:
def status = bat(script: "<your command here>", returnStatus: true)
if (status != 0) {
unstable("unstable build because script failed")
}
当然,您可以根据需要和返回状态来制作粒度更高的东西。
此外,为了引发错误,还可以使用warnError()
代替unstable()
。它将指示您的构建失败而不是不稳定,但语法相同。
https://stackoverflow.com/questions/8148122
复制相似问题