maven – Hudson / Jenkins如何确定工作结果状态?

我有一个运行maven 3作业的Hudson服务器来编译
Java代码.在一个实例中,特定作业的构建日志指示编译和单元测试全部成功运行,并且构建在成功状态下完成并且另一个链接作业被调用,所有都表明Hudson认为该作业是成功的.日志显示:

20:44:11  [INFO] BUILD SUCCESS
20:44:11  [INFO] ------------------------------------------------------------------------
20:44:11  [INFO] Total time: 1:35:43.774s
20:44:11  [INFO] Finished at: Mon Mar 24 20:44:11 CDT 2014
20:44:40  [INFO] Final Memory: 51M/495M
20:44:40  [INFO] ------------------------------------------------------------------------
20:44:42  channel stopped
20:44:42  [locks-and-latches] Releasing all the locks
20:44:42  [locks-and-latches] All the locks released
20:44:43  Archiving artifacts
20:45:33  Updating JIRA-1234
20:45:33  Description set: 1.23.567
20:45:33  Labelling Build in Perforce using ${BUILD_TAG}
20:45:33  [jobname] $/usr/local/bin/p4 -s label -i
20:45:33  Label 'hudson-jobname-45' successfully generated.
20:45:33  [DEBUG] Skipping watched dependency update; build not configured with trigger:     jobname #45
20:45:33  Finished: SUCCESS

但是,Hudson作业页面显示“红色球”,并且作业运行在作业页面上列为“上次失败的构建(#45)”.当我查看hudson @hudson:~hudson / jobs / jobname / builds / 45 / build.xml文件时,有一行说

<result>FAILURE</result>

假设这是捕获最终结果的地方,我将其更改为

<result>SUCCESS</result>

并重新加载页面,但红色球仍显示在该实例的作业页面上.我没有重新启动服务器以尝试从磁盘重新读取信息.

公平地说,围绕这个版本存在一些环境问题.几个小时后,我收到一条消息,表明多个Hudson服务器实例正在针对同一磁盘映像运行,并确认了这一点

ps -ef | grep hudson.war

在服务器控制台上,显示两个正在运行的进程作业页面显示此运行“花了0毫秒”,即使日志显示“总时间:1:35:43.774s”.这是Hudson ver. 2.2.1在“CentOS 5.4版(最终版)”上运行.

我的问题:

>每种工作状态的标准是什么? (稳定,失败,不稳定,中止和禁用状态)?
>在运行的服务器中捕获的数据何时何地,是否可以修改?

最佳答案 你在一篇文章中有太多问题.

至于“每种工作状态的标准是什么?(稳定,失败,不稳定,中止和禁用状态)?”

>禁用是指从配置中禁用项目/作业(由具有权限的用户完成).这不是运行状态.

其余的是Job Run状态:

>中止是指取消/中止运行.当用户(具有权限)单击红色十字按钮以取消正在运行的构建时,会发生这种情况.我相信SCM结账失败也会导致状态中止(但不太确定)
>不稳定是一种特殊状态,可应用于作业运行.通常这是通过作业配置(例如Maven)或通过插件(例如Text-finder plugin)完成的.我不知道通过命令行引发不稳定状态的方法.也许通过一个时髦的脚本,就像插件一样.大多数情况下,不稳定是由作业配置本身设置的,表示测试失败.
> Stable和Failed是Build Step退出代码的直接结果.如果构建步骤(例如Execute Shell)以退出代码0退出,则构建步骤被视为成功.除0以外的任何内容都被视为失败.如果在执行构建步骤期间,进程以0以外的任何其他方式退出,则视为失败.如果有多个构建步骤(自由式项目作业),则最后一个构建步骤的退出代码将标记整个运行的状态.再一次,任何以0以外的任何东西退出的构建步骤将标记构建失败.
>构建后操作(如Text-finder plugin)也可以更改作业运行的状态.

您不应该修改作业历史文件来更改以前作业的状态.如果您需要更改作业结果,请使用Text-finder plugin之类的后期构建操作,但即使这样,它也只允许降级结果.

点赞