Culprits 是自上次未损坏的构建到现在为止提交更改的用户列表。Jenkins Email-ext 插件能够在构建后操作期间向罪魁祸首发送电子邮件。
我想在我的 Jenkins 工作中的 python 脚本构建步骤中使用 Culprits 定义的电子邮件列表。
谁能建议我如何做到这一点?
“罪魁祸首”列表来自 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"}
此示例会将“Adam Smith”之类的罪魁祸首转换为 adam.smith@mydomain.com 但您可以将调用替换为调用并getFullName()
以getId()
适当的方式进行操作。例如:
def list = culprits.collect{it.getId().toLowerCase() + "@mydomain.com"}
这是 email-ext 使用的基本格式 - 您可以从文档中获取完整的用户属性列表。
现在你有了一个 groovy 脚本中的列表,但是如何使该列表可用于你的 python 脚本呢?这将归结为你习惯做的事情。您可以将列表写入您的工作区并从 python 中读取,或者将结果保存到环境变量中,甚至将其保存到构建参数中。