邮件告警插件安装和使用:提取Job构建结果与多种通知方式

86 阅读2分钟

在持续集成(CI)和持续交付(CD)过程中,及时获取构建结果和通知是确保项目质量和进度的重要环节。通过邮件告警插件,我们可以在Job构建结果出现异常时,第一时间收到通知。本文将介绍如何在Jenkins中安装和使用邮件告警插件,提取构建结果,并通过多种通知方式提醒团队成员。

一、安装邮件告警插件

  1. 安装邮件扩展插件(Email Extension Plugin)
  • 登录Jenkins的管理控制台。

  • 进入“Manage Jenkins” -> “Manage Plugins”。

  • 在“Available”标签下搜索“Email Extension Plugin”。

  • 勾选插件并点击“Install without restart”进行安装。

  • 配置邮件通知

  • 安装完成后,进入“Manage Jenkins” -> “Configure System”。

  • 找到“Extended E-mail Notification”部分,配置SMTP服务器和邮件发送设置。例如:

    • SMTP server: smtp.example.com
    • Default user e-mail suffix: @example.com
    • Sender E-mail Address: jenkins@example.com
    • SMTP Authentication: 配置SMTP认证信息(如有必要)
    • SMTP Port: 25或其他端口
    • Use SSL: 根据SMTP服务器配置选择是否使用SSL
  • 测试邮件配置

  • 配置完成后,点击“Test configuration by sending test e-mail”。

  • 输入接收测试邮件的邮箱地址,点击“Test”发送测试邮件,确保邮件配置正确。

二、配置Job的邮件通知

  1. 配置Job
  • 进入需要配置邮件通知的Job。

  • 点击“Configure”进入Job的配置页面。

  • 在“Post-build Actions”中选择“Editable Email Notification”。

  • 配置邮件通知触发条件

  • Project Recipient List:指定接收通知的邮件地址,多个地址用逗号分隔。

  • Content Type:选择邮件内容格式(HTML、Plain text、XML等)。

  • Default Subject:设置邮件主题,可以使用变量(如$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!)。

  • Default Content:设置邮件内容,支持使用变量和HTML格式。例如

<p>Job: $PROJECT_NAME</p>
<p>Build Number: $BUILD_NUMBER</p>
<p>Status: $BUILD_STATUS</p>
<p>Console Output: $BUILD_URL/console</p>
    • Triggers:选择触发邮件通知的条件(如构建失败、构建成功、构建不稳定等)。
  1. 高级配置
  • 点击“Advanced Settings”可以进行更详细的配置,如附件、预定义的变量、不同触发条件下的邮件内容等。

三、多种通知方式

除了邮件通知,Jenkins还支持多种其他通知方式,如Slack、微信、短信等。以下是几种常见的配置方法:

  1. Slack通知
  • 安装Slack插件

    • 在“Manage Plugins”中搜索并安装“Slack Notification Plugin”。
  • 配置Slack插件

    • 进入“Manage Jenkins” -> “Configure System”。
    • 找到“Slack”部分,配置团队域名和集成Token。
  • 配置Job的Slack通知

    • 在Job的配置页面,添加“Slack Notifications”构建后操作。
    • 配置Slack频道和通知触发条件。
  • 微信通知

  • 安装微信企业号插件

    • 在“Manage Plugins”中搜索并安装“WeChat Notification Plugin”。
  • 配置微信企业号插件

    • 进入“Manage Jenkins” -> “Configure System”。
    • 找到“WeChat”部分,配置企业号的相关信息(如企业ID、应用ID、Secret等)。
  • 配置Job的微信通知

    • 在Job的配置页面,添加“WeChat Notifications”构建后操作。
    • 配置接收通知的用户和通知触发条件。
  • 短信通知

  • 安装相关插件

    • 根据使用的短信服务商,安装对应的插件或通过API集成。
  • 配置插件或API

    • 进入“Manage Jenkins” -> “Configure System”,配置短信服务的相关信息。
  • 配置Job的短信通知

    • 在Job的配置页面,添加相应的短信通知操作。
    • 配置接收通知的电话号码和通知触发条件。

四、提取Job构建结果

为了在通知中包含详细的构建结果信息,可以使用Jenkins提供的环境变量和脚本:

  • 环境变量:在邮件内容或其他通知内容中使用Jenkins环境变量,如:

    • $BUILD_NUMBER:构建编号
    • $BUILD_STATUS:构建状态
    • $BUILD_URL:构建URL
    • $PROJECT_NAME:项目名称
  • 脚本:使用Groovy脚本提取更多信息。在邮件扩展插件的“Advanced Settings”中,可以编写Groovy脚本来生成邮件内容。

例如,提取构建日志中的关键信息并包含在邮件中:

def buildLog = manager.build.log
def importantInfo = buildLog.findAll { it.contains("ERROR") || it.contains("WARN") }
manager.listener.logger.println("Important Info: " + importantInfo)
return """
<p>Build Number: ${manager.build.number}</p>
<p>Status: ${manager.build.result}</p>
<p>Important Logs:</p>
<pre>${importantInfo}</pre>
"""

通过以上步骤和配置,你可以在Jenkins中实现邮件告警和多种通知方式,及时获取构建结果并通知团队成员,确保项目的质量和进度。