将Jenkins的构建状态更改为成功

8
我的 Jenkins 作业使用 testlink 存储测试结果。如果测试失败,testlink 插件会将构建状态更改为不稳定。
但是我希望在后续构建操作中使用 Xunit 插件来确定构建结果,因为您可以适应失败阈值。只有当出现新错误时,构建才应该不稳定。
我希望执行以下操作: -- 测试 -- -- testlink -> 标记为不稳定 -- -- groovy 脚本 -> 标记为成功 -- build.result = hudson.model.Result.SUCCESS -- xunit,检查不稳定/成功的阈值 --
然而,似乎无法将构建状态更改回成功。因此,现在 testlink 标记为不稳定,并且 xunit 反映该状态。
是否有一种方法来解决这个问题?
1个回答

6

很遗憾,我认为Jenkins不允许您进行这样的操作,除非采用一个丑陋的hack。

例如,您可以看到一个注释清楚地说明一个结果只会变得更糟,在Jenkins源代码中。

例如:

462 // result can only get worse
463 if (result==null || r.isWorseThan(result)) {

说了这么多,其实一旦工作完成,你可以“技术上”登录到主机,并通过直接更改build.xml来对已经完成的构建进行任何操作。
例如,您可以添加一个后置构建任务,它将遍历Jenkins主机上的文件,并执行大规模更新以将“UNSTABLE”替换为“SUCCESS”,以将所有构建转换为成功。工作完成后,强制重新启动Jenkins服务器或重新加载其配置以使更改生效。
我不建议这样做,因为谁知道如果您开始变得疯狂会发生什么事情。 ;)

你没有看到Groovy Post Build插件吗?它可以做到这一点。 - uchuugaka
@uchuugaka 怎么做?你能分享一下 Groovy 脚本吗? - Kasun Gajasinghe
当然。请阅读此页面。http://www.tikalk.com/devops/JenkinsJobStatusChange/ - uchuugaka
我知道有点晚了,但是工作结果文件存储在哪里? - Čamo
我们能否使用反射来访问结果字段,将其公开,并将基础字段设置为任何我们想要的值?我不确定该字段声明为“volatile”是否会对这个计划造成任何影响... - ArtOfWarfare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接