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

标签 maven jenkins hudson status jobs

我有一个运行 maven 3 作业来编译 Java 代码的 Hudson 服务器。在一个实例中,特定作业的构建日志表明编译和单元测试都成功运行,构建在成功状态下完成并调用了另一个链式作业,所有这些都表明 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

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

我的问题:
  • 每种工作状态的标准是什么? (稳定、失败、不稳定、中止和禁用状态)?
  • 正在运行的服务器中何时何地捕获该数据,是否可以对其进行修改?
  • 最佳答案

    您在一个帖子中有太多问题。

    至于"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 的方法通过命令行显示状态。也许通过一个 groovy 脚本,就像插件一样。大多数时候,unstable由作业配置本身设置,表示测试失败。
  • StableFailed的直接结果构建步骤 的退出代码。如构建步骤,如执行 Shell , 以退出代码 0 退出,构建步骤被视为 success .除 0 以外的任何内容被认为 failed .如果在构建步骤的执行过程中,进程以除 0 以外的任何内容退出。 ,被认为是 failed .如果有多个构建步骤(自由式项目作业),则最后一个构建步骤的退出代码标记整个运行的状态。再一次,中间的任何构建步骤都会以 0 以外的任何内容退出。将标记构建 failed .
  • 构建后操作 ,例如 Text-finder plugin还可以更改作业运行的状态。

  • 您不应该通过修改作业历史文件来更改以前作业的状态。如果您需要更改作业结果,请使用构建后操作,例如 Text-finder plugin ,但即便如此,它也只允许降级结果。

    关于maven - Hudson/Jenkins 如何确定工作结果状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22672684/

    相关文章:

    Maven 版本 : How to skip deploy step?

    hudson - Jenkins 构建升级 : How do I get the build id of the build I want to promote?

    linux - 无法通过 ssh 连接到主机 : Host key verification failed.\r\n

    git - Hudson SSH key 权限被拒绝

    testing - 使用 Hudson 设置 JBoss 集群?

    java - jQAssistant 是否会默默地删除严重性低于 POM 中配置的约束?

    java - Maven scm 更新

    java - Maven 不会从谷歌存储库下载 jar

    ios - Jenkins/faSTLane - 没有找到本地代码签名身份

    version-control - Hudson Perforce 插件 - 如何在不重复触发构建的情况下自动更新版本