这个问题是关于如何向在Jenkins中的下游任务中破坏集成测试的git committers发送电子邮件,并查看下游任务的更改列表。
我没有尝试过这里写的所有内容,所以可能会有错误,这些都是我遇到的代码的印象。
显然有很多尝试回答这个问题,但似乎没有一个令人满意的答案,因此我将详细说明。具体细节如下:
我们以前使用svn工作。我们的工作层次结构为一个任务检出并编译,触发其他任务获取编译产物并对其执行各种集成测试。
需要向破坏构建的上游svn committers发送电子邮件。
我们喜欢通过email-ext插件(https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin)发送电子邮件,因为它非常可定制,我们经常使用此功能。
Email ext插件使用当前任务的changelog.xml来查找谁破坏了构建。由于changelog.xml是通过checkout操作创建的,因此它存在于上游任务中。因此,email-ext似乎不知道应该向谁发送电子邮件。
如果您决定包括culprits,则可以使用-Dhudson.upstreamCulprits=true启动jenkins,这会更改email-ext的行为,但如果您不想包括culprits,则这并不会帮助您。此外,在下游任务中似乎无法使用changeset。
还有一个blame-upstream committers插件,但它似乎与email-ext不兼容。 upstreamCulprits和blame-upstream似乎都需要指纹识别,而我们宁愿不使用这种方式,因为我们有很多文件和很多任务...这会带来严重的性能问题。
我们使用BlameSubversion插件(https://wiki.jenkins-ci.org/display/JENKINS/BlameSubversion)解决了我们的问题。它显然是从触发此任务的上游项目复制changelog.xml,因此当此任务失败并查找在changelog中破坏构建的用户时,它可以找到他们,并且他们也出现在changelog中。
所以我们对svn非常满意。现在,我们迁移到git。没有Blame Git插件。我们不介意编写一个。我们只需要了解是否应该。人们已经将git和jenkins一起使用了一段时间。我们不能是第一个遇到这个困难的人...谢谢,Nathan.
我没有尝试过这里写的所有内容,所以可能会有错误,这些都是我遇到的代码的印象。
显然有很多尝试回答这个问题,但似乎没有一个令人满意的答案,因此我将详细说明。具体细节如下:
我们以前使用svn工作。我们的工作层次结构为一个任务检出并编译,触发其他任务获取编译产物并对其执行各种集成测试。
需要向破坏构建的上游svn committers发送电子邮件。
我们喜欢通过email-ext插件(https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin)发送电子邮件,因为它非常可定制,我们经常使用此功能。
Email ext插件使用当前任务的changelog.xml来查找谁破坏了构建。由于changelog.xml是通过checkout操作创建的,因此它存在于上游任务中。因此,email-ext似乎不知道应该向谁发送电子邮件。
如果您决定包括culprits,则可以使用-Dhudson.upstreamCulprits=true启动jenkins,这会更改email-ext的行为,但如果您不想包括culprits,则这并不会帮助您。此外,在下游任务中似乎无法使用changeset。
还有一个blame-upstream committers插件,但它似乎与email-ext不兼容。 upstreamCulprits和blame-upstream似乎都需要指纹识别,而我们宁愿不使用这种方式,因为我们有很多文件和很多任务...这会带来严重的性能问题。
我们使用BlameSubversion插件(https://wiki.jenkins-ci.org/display/JENKINS/BlameSubversion)解决了我们的问题。它显然是从触发此任务的上游项目复制changelog.xml,因此当此任务失败并查找在changelog中破坏构建的用户时,它可以找到他们,并且他们也出现在changelog中。
所以我们对svn非常满意。现在,我们迁移到git。没有Blame Git插件。我们不介意编写一个。我们只需要了解是否应该。人们已经将git和jenkins一起使用了一段时间。我们不能是第一个遇到这个困难的人...谢谢,Nathan.