基于脚本输出在jenkins中发送电子邮件通知

时间:2014-04-10 07:35:08

标签: email jenkins jenkins-plugins email-ext

我被困在我通过jenkins运行perl脚本的位置,我希望发送一个有条件的电子邮件通知。

例如...... 如果在脚本的末尾,某个变量的值是> 1然后发送电子邮件通知 其他 不要发送

有人可以帮我这个吗?或者知道更好的方法吗?

4 个答案:

答案 0 :(得分:5)

这可以使用

解决
  

Email-ext插件   https://wiki.jenkins.io/display/JENKINS/Email-ext+plugin

您可以使用上面的链接查看有关插件的信息

  1. 如果我确定您要根据您的构建条件结果发送邮件。
  2. 您可以在可编辑的电子邮件通知中使用触发器。
  3. 您可以根据条件使用帖子构建步骤和预构建步骤来触发电子邮件
  4. 你需要为你的要求编写一个脚本并将其放在post&预建步骤。

答案 1 :(得分:4)

但我没有这个:

有一个Any Build Step插件。除此之外,它还允许构建后步骤执行构建后操作。理论上,这应该允许您在构建步骤后执行“可编辑电子邮件通知”构建后步骤。这是此解决方案中最大的通配符。先试试这个。在Jenkins的“构建周期”作业完成之前,我不知道电子邮件通知是否能正常工作。

接下来,有 Conditional Build Step 插件。它允许您根据各种条件执行构建步骤。

如果您能够使用“Any Build Step”插件在构建周期的中间触发电子邮件,您应该能够使用“条件构建步骤”插件将其包装起来,以便有条件地执行。

如果这确实有效,请告诉我

答案 2 :(得分:1)

我遇到类似的情况,当jenkins构建日志有一个字符串时,我需要发送一封电子邮件。这是我在jenkins工作的presend脚本中处理的方式。

logger.println(build.getLog(50))
if (build.getLog(50).contains("NoChangesPresent")) {
  cancel = true;
}

我正在尝试获取最后50行构建日志并搜索它以查看是否存在字符串。如果它存在,那么我将取消设置为true,这将停止触发jenkins的电子邮件。

希望这有帮助。

答案 3 :(得分:1)

我喜欢siri的回答。有一种思念缺失。

logger.println(build.getLog(50)) if
(build.getLog(50).toString().contains("NoChangesPresent")) {   cancel = true; }

在没有将will函数转换为字符串之前,似乎没有包含will函数。祝你好运!