我有一个groovy脚本来执行代码。长话短说,我知道在该剧本的某个时间点,如果它成功与否。如果不成功,我想失败。 Groovy有没有办法使构建失败?从常规脚本中失败的Jenkins构建
示例:
“执行Groovy脚本”插件。你可以编写代码。
(insert API call to promote code) if(checkPromote()){ //fail build here }
其中 'checkPromote' 返回根据的促进状态的true或false值。
我有一个groovy脚本来执行代码。长话短说,我知道在该剧本的某个时间点,如果它成功与否。如果不成功,我想失败。 Groovy有没有办法使构建失败?从常规脚本中失败的Jenkins构建
示例:
“执行Groovy脚本”插件。你可以编写代码。
(insert API call to promote code) if(checkPromote()){ //fail build here }
其中 'checkPromote' 返回根据的促进状态的true或false值。
在我看来,最优雅的放弃程序的方式就是断言。
assert condition : "Build fails because..."
的声明管道DSL有一个错误的步骤:
error('Failing build because...')
见https://jenkins.io/doc/pipeline/steps/workflow-basic-steps和搜索页面“错误的信号”。
这也将做到这一点:
sh "exit 1"
我通常使用的throw new Exception("Error Message")
简单的东西,所以也许你可以用已经尝试:
if(checkPromote()){
throw new Exception("Error Message")
}
希望这也适用于您
从此页,https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin
import hudson.AbortException
//other code
throw new AbortException("Error message .")
你试过这个吗?您看到以下错误:org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:脚本不允许使用新的hudson.AbortException。 – acm
@acm是的,虽然您必须首先批准AbortException的构造函数,但请参阅https://stackoverflow.com/a/39412951/7509826 –
返回脚本中的非零退出码。应该失败你的构建 – Rik
这是我第一次尝试。 '返回-1',这是行不通的。 – Eddie
我也尝试'返回false'。 – Eddie