使用“执行常规脚本”构建步骤将自由式作业结果设置为失败

问题描述 投票:0回答:2

我已经尝试了很多方法来将作业状态设置为失败而不打印堆栈跟踪。没有任何效果,因为“执行 groovy 脚本”步骤似乎无法访问任何作业变量。由于多种原因,我无法使用“执行系统 groovy 脚本”。我该怎么做?

currentBuild.result = '失败'
捕获:groovy.lang.MissingPropertyException:没有这样的属性:类的currentBuild:hudson4756676730102994092

build.@result = '失败'
捕获:groovy.lang.MissingPropertyException:没有这样的属性:为类构建: 哈德逊7411676143395659493

退出(1)
捕获:groovy.lang.MissingMethodException:没有方法签名:hudson4931461189946955208.exit() 适用于参数类型:(java.lang.Integer) 值:[1]

返回 1
完成:成功

jenkins jenkins-groovy
2个回答
0
投票

终于想通了

System.exit(1)

我有意识地避免了这个答案,因为在其他工作中它会导致 Jenkins 本身关闭。但是,由于这不是系统 groovy 代码,它只是退出带有错误代码的 groovy 脚本。


0
投票

Jenkins 管道将 always fail 任何non zero exit code的构建(并抛出异常) - 并且无法更改。

例如: 如果您使用的是 python 之类的东西,您可以在 try{}catch{} 块中执行“raise”以查看错误并使构建失败。 (subprocess.check_call 非常适合 Jenkins,并且 raise 将返回一个非零退出代码以使作业正确失败。)

在 Jenkins 作业中,我会直接调用“System.exit(1)”来使测试作业中的构建失败,以查看插件交互。

© www.soinside.com 2019 - 2024. All rights reserved.