如何防止某些构建影响Jenkins项目的稳定性

时间:2014-07-15 18:23:50

标签: jenkins continuous-integration gerrit

我们正在使用Jenkins和Gerrit Trigger插件,所以当一个变更集上传到Gerrit进行审核时,Jenkins会检查它是否编译并发布结果。

工作流程如下:

  1. 将变更集上传到Gerrit
  2. gerrit挂钩通知Jenkins新的变更集,给Jenkins一些信息,例如Gerrit变更集ID,补丁号,目标分支等。
  3. Jenkins在项目中启动了一个构建,用于侦听此存储库。
  4. 当项目完成构建时,如果构建成功与否,jenkins会将结果报告给Gerrit,或者+1或-1。这些信息由gerrit中的代码审阅者使用,以帮助他们决定是否接受变更集。
  5. 问题:当这些构建失败时,Jenkins项目被标记为“失败”或“不稳定”。这不完全准确,因为导致失败的更改尚未被接受或合并到存储库中,它们只是新提出的。

    Jenkins的一个特点是它将根据成功与失败构建的比例来衡量项目的健康状况。如果构建都工作,它将显示“阳光”符号,但如果一些失败,那么你得到一个“雷云”。如何配置Jenkins以便这些验证版本不会影响项目的稳定性评级?如果从Gerrit批准并合并到git存储库中的提交构建,我们需要项目的状态显示“阳光”,无论未合并的更改的构建结果如何(Gerrit中的更改仍待审核)。个别构建可以是红色而不是绿色。

1 个答案:

答案 0 :(得分:1)

在$ DAYJOB,我们通过使用2个单独的构建作业来处理这个问题。提交验证作业,在Gerrit更改上发布+ 1 / -1,我们不关心构建稳定性。还有一个构建稳定性/回归工作,它运行的构建已经合并到我们关心稳定性的地方。我们忽略提交验证作业的状态颜色。

我不知道有什么方法可以让Jenkins插件给出-1 / + 1投票,但总是显示绿色状态。它在确定要给出的分数时使用该状态。