Jenkins:在不同时间向不同的收件人发送构建电子邮件

时间:2015-07-27 16:36:34

标签: email jenkins

在这里,我想知道是否有办法使用Jenkins在不同时间向不同的收件人发送电子邮件通知。

我目前使用带有Email-Ext插件的Jenkins 1.620构建我的项目,在设定的时间向多个用户发送电子邮件(包含附件)。这一切都很好,但我希望在那天的另一个时间再次运行这个项目,将该电子邮件发送到另一个收件人列表。看起来我可以在白天多次安排构建,但我无法更改那些不同的预定构建的收件人。

除了在每次我想运行我的项目时创建另一个版本,还是在不同的时间向不同的收件人发送电子邮件之外,Jenkins还有什么方法吗?

(以防万一它有用,项目的构建步骤为1:调用ant命令构建然后2:执行windows batch命令来运行)。

2 个答案:

答案 0 :(得分:2)

您可以使用Email Pre-send Script动态更改收件人列表。例如,这是一个groovy脚本,显示如何根据一天中的一小时准备收件人列表:

import javax.mail.Message

hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);

if (hour < 9) {
  msg.setRecipients(Message.RecipientType.TO, "rec1@company.com, rec2@company.com")
} else if (hour >= 9 && hour <= 18) {
  msg.setRecipients(Message.RecipientType.TO, "rec3@company.com")
} else {
  msg.setRecipients(Message.RecipientType.TO, "admin@company.com")
}

答案 1 :(得分:1)

创建两个新项目,触发使用不同收件人设置参数化的构建项目:

  • 添加构建后操作→在其他项目上触发参数化构建

    • 添加参数→预定义参数

      • 参数:RECIPIENTS_PASSED_FROM_TRIGGER_PROJECT=<e-mail adresses>

将您的构建项目配置为参数化:

  • 元数据→[✔]此版本已参数化

    • 添加参数→字符串参数

      • 姓名:RECIPIENTS_PASSED_FROM_TRIGGER_PROJECT

并在其中使用此参数:

  • 构建后操作→可编辑电子邮件通知

    • 项目收件人列表:${RECIPIENTS_PASSED_FROM_TRIGGER_PROJECT}