【问题标题】:How to prevent some builds from affecting the stability of a Jenkins project如何防止某些构建影响 Jenkins 项目的稳定性
【发布时间】:2014-07-15 18:23:49
【问题描述】:

我们将 Jenkins 与 Gerrit Trigger 插件一起使用,因此当将变更集上传到 Gerrit 进行审查时,Jenkins 将检查它是否编译并发布结果。

工作流程是这样发生的:

  1. 变更集已上传到 Gerrit
  2. gerrit 挂钩通知 Jenkins 新的变更集,为 Jenkins 提供某些信息,例如 Gerrit 变更集 ID、补丁号、目标分支等。
  3. Jenkins 在配置为侦听此存储库的项目中启动构建。
  4. 项目构建完成后,jenkins 将构建成功与否(+1 或 -1)报告回 Gerrit。 gerrit 中的代码审查人员使用此信息来帮助他们决定是否接受变更集。

问题:当这些构建失败时,Jenkins 项目被标记为“失败”或“不稳定”。这并不完全准确,因为导致失败的更改尚未被接受或合并到存储库中,它们只是新提出的。

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

【问题讨论】:

  • 这就是您要找的东西? stackoverflow.com/questions/19697051/…
  • 谢谢@HiB,但我确实已经看到了那个答案。这是一个手动过程,我需要一些自动的。
  • 你能更详细地写下你的问题吗?很抱歉,但仍然不明白你需要什么

标签: jenkins continuous-integration gerrit


【解决方案1】:

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

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

【讨论】:

  • 谢谢布拉德,这肯定会奏效。为了计算项目稳定性,我正在寻找某种方法将构建标记为“不重要”。我们的工作空间很多,复制它们的成本很高。
猜你喜欢
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 2017-01-01
  • 2012-04-24
  • 2011-01-30
  • 2012-07-14
  • 2011-09-10
  • 1970-01-01
相关资源
最近更新 更多