如何通过普通Groovy脚本步骤将Jenkins Freestyle任务设为失败状态
在不打印堆栈跟踪的情况下标记Jenkins Freestyle任务为失败
可行方案
方案1:抛出Jenkins内置中止异常
使用hudson.AbortException抛出错误,这是Jenkins专门用于中止任务的异常,默认不会打印堆栈跟踪,只会显示自定义错误消息,同时将任务标记为失败:
throw new hudson.AbortException("任务执行失败,请检查相关配置")
方案2:通过线程获取构建对象修改状态
如果不想抛出异常,可通过当前线程获取正在执行的构建实例,直接修改其结果:
import hudson.model.Result def currentBuild = Thread.currentThread().executable currentBuild.setResult(Result.FAILED)
这种方式不会产生任何异常输出,直接将任务状态设为失败。
之前尝试方法失效的原因
currentBuild/build:这两个是Jenkins Pipeline专属变量,Freestyle任务的普通Groovy脚本步骤无法直接访问exit(1)/return 1:普通Groovy脚本步骤的返回值或exit调用不会影响Jenkins构建的整体状态,Jenkins仅根据步骤是否抛出异常判断任务是否失败
内容的提问来源于stack exchange,提问作者Glenn
相关产品推荐
相关产品推荐

