我已经尝试了很多方法来将作业状态设置为FAILED而不打印堆栈跟踪。没有任何效果,因为“执行groovy脚本”步骤似乎无法访问任何作业变量。由于以下几个原因,我无法使用“执行系统groovy脚本”。我该怎么做?
当前构建。结果=“失败”
捕获到:groovy.lang.缺少属性异常:无此类属性:类的当前构建版本:赫德森4756676730102994092
生成.@result =“失败”
捕获到:groovy.lang.缺少属性异常:无此类属性:为类构建:赫德森
出口(1)
捕获到:groovy.lang。缺少方法异常:无方法签名:exit()适用于参数类型:(java.lang.整数)值:[一]
返回1
完成:成功
2条答案
按热度按时间sh7euo9m1#
终于想明白了。
系统出口(1)
我有意识地避免了这个答案,因为在其他作业中,它会导致Jenkins自己关闭,但是,由于这不是系统Groovy代码,它只是退出Groovy脚本并返回错误代码。
euoag5mw2#
对于任何非零退出代码,Jenkins将总是失败构建(并抛出异常)-这是不能改变的。
**例如:**如果您使用的是python之类的工具,则可以在try{}catch{}块中执行“raise”,以查看错误并使构建失败。(subprocess.check_call非常适合Jenkins,raise将返回一个非零退出代码,以正确地使作业失败。)
在Jenkins jobs中,我将直接调用“System.exit(1)”来使测试作业中的构建失败,以查看插件交互。