Jenkins(continuous build)能否确定导致构建失败的提交?

Jenkins(continuous build)能否确定导致构建失败的提交?,jenkins,Jenkins,Jenkins说构建成功或失败,但它能确定导致构建失败的确切提交(和作者!)吗 似乎表示没有 编辑:从我与佩斯的交流中: 我看到的是“包括罪犯”,这是自上个月以来的所有人 建造。我不想那样。我要抓罪犯,由詹金斯负责 二进制搜索。如果Jenkins两次构建10次提交,我不会 想要10个可能的罪犯,我想让它找到一个 我还没有听说如何做到这一点。那一页讨论的是“查找bug”插件,而不是正常的构建周期。根据设置方式,Jenkins可以确定导致失败的确切提交人和作者。如果Jenkins安装了适当的源代码管

Jenkins说构建成功或失败,但它能确定导致构建失败的确切提交(和作者!)吗

似乎表示没有

编辑:从我与佩斯的交流中:

我看到的是“包括罪犯”,这是自上个月以来的所有人 建造。我不想那样。我要抓罪犯,由詹金斯负责 二进制搜索。如果Jenkins两次构建10次提交,我不会 想要10个可能的罪犯,我想让它找到一个


我还没有听说如何做到这一点。

那一页讨论的是“查找bug”插件,而不是正常的构建周期。根据设置方式,Jenkins可以确定导致失败的确切提交人和作者。如果Jenkins安装了适当的源代码管理插件,并且配置为了解构建所绑定的存储库,那么对于每个构建,它将列出自上次构建以来的更改

此外,Jenkins在其许多报告插件中有能力指责有缺陷的提交者。例如,它可以向进行错误提交的开发人员发送一个关于失败构建的消息

然而,许多设置使詹金斯很难知道。例如,如果Jenkins配置为每日构建,那么可能有许多提交导致了问题。也可能Jenkins没有配置为了解源代码管理存储库,或者没有源代码管理存储库。所有这些问题都可能导致Jenkins无法识别构建破坏者

特别是对于发送错误提交者的电子邮件,您可以使用插件,该插件具有向自上次成功构建以来提交的所有人发送电子邮件的选项


想了解关于这个话题的幽默观点,请查看。

我认为在某些情况下,你所要求的是不可能的。确定谁是罪魁祸首需要洞察只有人类才能决定的冲突解决方案。即使如此,有时也必须有一名经理参与仲裁。例如,假设您得到3个依赖于预先存在的定义的提交(A、B、C)。但是,另一个commit(D)会修改该函数的行为。你喜欢哪一种?也许这是保持A、B、C不变并将D恢复到其原始状态的商业计划。相反,修改A、B、C以适应D的变化也是可能的


在机器可以处理仲裁的情况下,单元测试和静态分析仪有责任确定罪魁祸首(尽管仍然不完善)。静态分析器有时会内置一些功能,向违规者发送电子邮件。可以编写单元测试来通知负责失败测试的团队或团队成员。两者都可以以相同的方式工作,以确定谁是特定线路上最后一个失败的提交者。不过,如果链接有问题,那么可能一些成员应该与特定的makefile相关联

我对詹金斯医生的情况知之甚少,而且我已经研究了一段时间了。你能告诉我一些文档,上面说如何配置Jenkins来识别确切的提交吗?根据我所看到的(由其他人配置),我确信它知道我们的git回购。幽默的拍摄很好,但它实际上没有说如何配置Jenkins。我们不需要一把nerf枪,只需要一封电子邮件。对不起,我以为“给破坏构建的个人发送电子邮件”选项是标准詹金斯的一部分。在与我们的构建人员交谈后,他说它来自电子邮件ext插件。我在答案中加了这个。谢谢。然而,我仍然看不到这个选项。我看到的是“包括罪犯”,这是自上次构建以来的所有人。我不想那样。我要抓罪犯,詹金斯在做二进制搜索。如果Jenkins做了两个构建10次提交,我不想要10个可能的罪魁祸首,我希望它找到一个。为了做到这一点,你需要在每次提交的基础上进行构建。我不再研究这个问题,但破坏构建的第一次提交是一个定义明确的概念。这个构建是否是唯一的罪魁祸首更为复杂,但至少最简单的事情应该是由计算机交付的。嘿,你找到解决这个问题的方法了吗?我想知道是否有基于机器学习的解决方案…可能是使用提交中的文件。。预测罪犯的犯罪行为。