【问题标题】:Change build status to succes in jenkins在詹金斯中将构建状态更改为成功
【发布时间】:2017-01-05 12:07:22
【问题描述】:

我的詹金斯工作使用 testlink 来存储他们的测试结果。如果测试失败,testlink 插件会将构建状态更改为不稳定。

但是,我希望构建结果由 Xunit 插件在构建后操作中确定,因为使用 Xunit,您可以调整失败阈值。 只有出现新错误时,构建才会不稳定。

我希望做以下事情:

--测试--

--testlink -> 标记为不稳定--

-- groovy scipt --> 标记为成功--

build.result = hudson.model.Result.SUCCESS

-- xunit,检查不稳定/成功的阈值--

但是,将构建状态改回成功似乎是不可能的。 所以现在 testlink 标记为不稳定,并且 xunit 镜像该状态。

有没有办法解决这个问题?

【问题讨论】:

    标签: jenkins jenkins-plugins xunit testlink


    【解决方案1】:

    不幸的是,我认为 Jenkins 不会允许你在没有丑陋的 hack 的情况下这样做。

    例如,您可以看到一条评论,明确指出Jenkins source code 中的结果只会变得更糟

    例如

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

    话虽这么说......

    一旦工作完成,您可以“技术上”登录到主服务器并通过直接更改 build.xmls 来做任何您想做的事情。

    例如,您可以添加一个构建后作业,该作业将遍历 Jenkins master 上的文件并进行大规模更新以将 "<result>UNSTABLE</result>" 替换为 "<result>SUCCESS</result>" 以使所有构建成功。作业完成后,强制重启 Jenkins 服务器或重新加载其配置以使更改生效。

    我不建议这样做,因为如果你开始像这样发疯,谁知道詹金斯会发生什么。 ;)

    【讨论】:

    • 您没有看过 Groovy Post Build 插件吗?它可以做到这一点。
    • @uchuugaka 怎么样?你能分享一下 groovy 脚本吗?
    • 当然。阅读本页。 tikalk.com/devops/JenkinsJobStatusChange
    • 我知道有点晚了,但作业结果文件准确存储在哪里?
    • 我们不能使用反射来访问结果字段,将其公开,并将底层字段设置为我们想要的任何值吗?我不确定该字段被声明为volatile 的事实是否会破坏这个计划......
    猜你喜欢
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 2020-07-04
    相关资源
    最近更新 更多