Jenkins - 如何将Email-ext插件的“Culprits”电子邮件列表变量传递给构建步骤?

时间:2015-05-13 21:33:02

标签: jenkins email-ext

Culprits是自上次非破坏构建以来一直提交更改的用户列表。 Jenkins Email-ext插件能够在构建后的操作过程中向犯罪分子发送电子邮件。

我想在我的Jenkins工作中的python脚本构建步骤中使用Culprits定义的电子邮件列表。

有人可以建议我怎么做吗?

1 个答案:

答案 0 :(得分:4)

'culprits'列表来自jenkins的SCM插件,包括自上次成功构建以来已提交的所有用户。最终,email-ext插件从scm获取其列表并根据following heuristic生成电子邮件地址

  

该插件将根据提交者的ID和Jenkins全局配置页面附加的“默认电子邮件后缀”生成一个电子邮件地址。例如,如果更改是由ID为“first.last”的人提交的,默认电子邮件后缀为“@ somewhere.com”,则会将电子邮件发送到“first.last@somewhere.com”

如果你的电子邮件地址有某种模式(他们必须这样做,否则email-ext插件不会生成正确的地址),那么你可以在一个groovy脚本中自己生成它们,例如:

import hudson.model.*
def culprits = build.getCulprits()
def list = culprits.collect{it.getFullName().toLowerCase().replace(" ", ".") + "@mydomain.com"}

此示例会将像“Adam Smith”这样的罪魁祸首转换为adam.smith@mydomain.com 但是,您可以通过调用getFullName()来取代对getId()的调用,并对其进行操作。例如:

def list = culprits.collect{it.getId().toLowerCase() + "@mydomain.com"}

email-ext使用的基本格式 - 您可以从documentation.

获取用户属性的完整列表

现在你有一个groovy脚本中的列表,但是如何使这个列表可用于你的python脚本?这将归结为您以前所做的事情。您可以将列表写入工作区并从python中读取,或将结果保存到环境变量,甚至将其保存到构建参数。