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

Bru*_* Tu 2 jenkins email-ext

罪魁祸首是自上次未损坏的构建以来提交更改的用户列表。Jenkins Email-ext 插件能够在构建后操作期间向罪魁祸首发送电子邮件。

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

谁能建议我如何做到这一点?

Ian*_*AWP 6

“罪魁祸首”列表来自 jenkins 中的 SCM 插件,包括自上次成功构建以来提交的所有用户。最终,email-ext 插件从 scm 获取其列表并根据以下启发式生成电子邮件地址

该插件将根据提交者的 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"}
Run Code Online (Sandbox Code Playgroud)

这个例子将转换罪魁祸首像“亚当·斯密”到adam.smith@mydomain.com但是你可以调用替换到getFullName()一起呼叫getId(),并操纵包含但是适当的。例如:

def list = culprits.collect{it.getId().toLowerCase() + "@mydomain.com"}
Run Code Online (Sandbox Code Playgroud)

这是 email-ext 使用的基本格式 - 您可以从文档中获取完整的用户属性列表

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