首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行shell脚本时如何在Jenkins中标记不稳定的构建

运行shell脚本时如何在Jenkins中标记不稳定的构建
EN

Stack Overflow用户
提问于 2011-11-16 07:31:09
回答 15查看 137.3K关注 0票数 101

在我正在处理的项目中,我们使用shell脚本来执行不同的任务。有些是运行rsync的sh/bash脚本,有些是PHP脚本。其中一个PHP脚本正在运行一些集成测试,这些测试输出到JUnit XML、代码覆盖率报告等等。

Jenkins能够基于 退出状态将作业标记为成功/失败。在PHP中,如果在运行过程中检测到测试失败,脚本将以1退出。其他shell脚本运行命令,并使用这些命令的退出代码将构建标记为失败。

代码语言:javascript
运行
复制
// :: End of PHP script:
// If any tests have failed, fail the build
if ($build_error) exit(1);

Jenkins术语中,不稳定构建定义为:

如果一个构建成功,并且一个或多个发布者报告它不稳定,则它是不稳定的。例如,如果配置了JUnit发布服务器,并且测试失败,那么构建将被标记为不稳定。

如何让Jenkins在运行shell脚本时将构建标记为不稳定的,而不仅仅是成功/失败?

EN

Stack Overflow用户

发布于 2021-12-14 10:24:42

除了所有其他答案之外,jenkins还允许使用unstable()方法(在我看来,这个方法更清楚)。此方法可与描述构建不稳定的消息参数一起使用。

除此之外,您还可以使用shell脚本(bat或sh)的returnStatus来启用它。

例如:

代码语言:javascript
运行
复制
def status = bat(script: "<your command here>", returnStatus: true)
if (status != 0) {
    unstable("unstable build because script failed")
}

当然,您可以根据需要和返回状态来制作粒度更高的东西。

此外,为了引发错误,还可以使用warnError()代替unstable()。它将指示您的构建失败而不是不稳定,但语法相同。

票数 3
EN
查看全部 15 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8148122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档