我有一台运行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
在服务器控制台上,显示两个正在运行的进程。工作页面表示此运行&#34;花了0毫秒&#34;,即使日志显示&#34;总时间:1:35:43.774s&#34;。这是Hudson ver。 2.2.1运行在&#34; CentOS版本5.4(最终)&#34;。
我的问题:
答案 0 :(得分:3)
你在一篇文章中提出的问题太多了。
至于"What are the criteria for each of the job statuses? (Stable, Failed, Unstable, Aborted and Disabled statuses)?"
Disabled
表示从配置中禁用项目/作业(由具有权限的用户完成)。这不是运行状态。其余的作业运行状态:
Aborted
是取消/中止运行的时间。当用户(具有权限)单击red cross
按钮取消正在运行的构建时,会发生这种情况。我相信SCM结账失败也会导致aborted
状态(但不太确定)Unstable
是一种特殊状态,可应用于作业运行。通常这是通过作业配置(例如Maven)或通过Text-finder plugin等插件来完成的。我不知道通过命令行导致unstable
状态的方法。也许通过一个时髦的脚本,就像插件一样。大多数情况下,unstable
由作业配置本身设置,表示测试失败。Stable
和Failed
是构建步骤退出代码的直接结果。如果构建步骤(例如执行Shell )以退出代码0
退出,则构建步骤将被视为success
。 0
以外的任何内容都被视为failed
。如果在执行构建步骤期间,该进程退出0
以外的任何内容,则会将其视为failed
。如果有多个构建步骤(自由式项目作业),则最后一个构建步骤的退出代码标记整个运行的状态。再一次,除0
以外的任何内容之外的任何构建步骤都将标记构建failed
。您不应该修改作业历史文件来更改以前作业的状态。如果您需要更改作业结果,请使用Text-finder plugin之类的构建后操作,但即使这样,它也只允许降级结果。
答案 1 :(得分:-1)
这是使用groovy post-build脚本在jenkins作业中打印提交SHA1的一个方法:
println "git rev-parse HEAD".execute().text
您可以将其保存到变量或将其导出为构建参数。