我目前使用带有Email-Ext插件的Jenkins 1.620构建我的项目,在设定的时间向多个用户发送电子邮件(包含附件)。这一切都很好,但我希望在那天的另一个时间再次运行这个项目,将该电子邮件发送到另一个收件人列表。看起来我可以在白天多次安排构建,但我无法更改那些不同的预定构建的收件人。
除了在每次我想运行我的项目时创建另一个版本,还是在不同的时间向不同的收件人发送电子邮件之外,Jenkins还有什么方法吗?
(以防万一它有用,项目的构建步骤为1:调用ant命令构建然后2:执行windows batch命令来运行)。
答案 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}