【问题标题】:Jenkins does not update build result to better resultJenkins 不会将构建结果更新为更好的结果
【发布时间】:2014-03-02 16:34:38
【问题描述】:

我有一个 groovy 脚本,它使用 setResult(hudson.model.Result.SUCCESS) 更改构建结果。

但我意识到我无法将工作结果更改为更好的结果(只能更改为更差的结果)。如果我将代码更改为:build.setResult(hudson.model.Result.Unstable),那么当构建成功时,结果将被更改(我可以在控制台输出中看到:构建步骤“Groovy Postbuild”更改了构建结果不稳定。) 但我无法将结果更新为更好的结果。

有什么解决办法吗? (groovy postbuild 也会出现同样的问题)。

编辑: 我在我的主要作业中使用 MultiJob 插件来运行 3 个下游作业(名为 job1、job2、job3)。我编写了一个 groovy 脚本,以便主要作业的结果将仅由前两个下游作业确定(当 job1 和 job2 成功,而 job3 不稳定 - 我希望将主要作业结果设置为成功)。 由于上面提到的问题,我做不到...有什么想法吗?

谢谢。

【问题讨论】:

  • 您是否也在为结果成功的情况执行 build.setResult,在您的问题中它丢失了?!
  • 当然。我刚刚将 SUCCESS 更改为 UNSTABLE。
  • 如果满足您的条件,也许您可​​以触发批处理命令以强制退出代码 0?
  • 但我需要主作业继续运行......它仍然需要发送邮件等。

标签: groovy jenkins


【解决方案1】:

我相信 Jenkins 的这种预期行为。其他改变构建结果的方法(例如Fail The Build plugin)也不能“改善”构建状态,它们只能使构建状态变得更糟(成功到不稳定到失败)。

【讨论】:

  • 我在问题中添加了一些信息,您有什么解决办法吗?
【解决方案2】:

使用Post Build pluginGroovy System Script,您可以通过Result.fromString() 更改构建结果,例如,将结果设置为“不稳定”:

build.result = hudson.model.Result.fromString('UNSTABLE')

在控制台中你会看到:

[PostBuildScript] - 执行后期构建脚本。

[Current build status] 检查当前的 [ABORTED] 是否比 [ABORTED] 差或等于 [ABORTED] 和更好或等于 [UNSTABLE]

运行条件 [当前构建状态] 为步骤 [执行系统 ​​Groovy 脚本] 启用执行

脚本返回:不稳定

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多