在我的Jenkins脚本化管道中,我有一个构建阶段,该阶段具有以下sh命令:
def buildcmd = "./scriptname.sh"+ <paramters>
def status = sh returnStatus: true, script:"""cd /to/some/dir
eval ${buildcmd}
"""
if(status != 0)
{
error("Failure")
}
执行后,scriptname
以状态2退出,status
变量也包含2,作业失败。但是阶段结果显示为SUCCESS
。我希望阶段结果和构建结果均为FAILURE
。
任何人都可以澄清一下。
答案 0 :(得分:0)
returnStatus(可选)
通常,以非零退出的脚本 状态代码将导致该步骤失败并发生异常。如果这 选项被选中,该步骤的返回值将改为 状态码。例如,您可以将其与零进行比较。
如果您的目标是简单地使阶段失败,请使用returnStatus: false
。不幸的是,我无法告诉您status code
和exit code
之间的区别(如上所述)。该文档仅告诉您,如果设置returnStatus: true
,则流水线不会在退出代码不等于0时失败。
您可以自己设置流水线的结果(Source):
if(status != 0)
{
currentBuild.result = 'FAILURE'
}