前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins2 学习系列13 -- 邮件和Slack通知

Jenkins2 学习系列13 -- 邮件和Slack通知

作者头像
mafeifan
发布2019-07-22 16:43:08
1.3K0
发布2019-07-22 16:43:08
举报
文章被收录于专栏:finleyMa

需求:需要把Jenkins的构建情况通过邮件,钉钉,Slack等通知告诉相关的测试,开发人员。 结合之前讲的 post钩子 更进一步可以实现失败时只通知给开发人员,成功通知给所有人员等。

邮件通知

这个需要在Jenkins中配置发件人的信息,如SMTP服务器,默认的邮件内容等 来到Jenkins的Configure System

  1. 首先在配置页面搜索 Location 配置Jenkins管理员的邮箱

image.png

  1. 搜索'E-mail Notification'

可能会发现有两个E-mail Notification,一个是Extended E-mail Notification另一个是E-mail Notification。前者是安装Jenkins时顺便安装的插件,后者是自带的。

自带的E-mail Notification功能较弱,我们配置 Extended E-mail Notification,配置项比较多,不同的点问号图标。

image.png

  1. 来到Pipeline项目的配置页面, 通过点击 Pipeline Syntax 来到 Snippet Generator, 生成pipeline脚本。 Step 选择 mailtext: Extended Email。

image.png

修改pipeline,添加发送邮件的步骤,放到pipeline的post部分的always块内,你也可以改为failure

代码语言:javascript
复制
    post {
      always {
        emailext to: 'mafeifan@qq.com', subject: "Job [${env.JOB_NAME}] - Status: ${currentBuild.result?: 'success'}", body: 
"""
<p>EXECUTED: Job <b>\' ${env.JOB_NAME}:${env.BUILD_NUMBER}\'
</b></p><p>View console output at "<a href= "${env.BUILD_URL}">
${env.JOB_NAME}:${env.BUILD_NUMBER}</a>"</p>
<p><i>(Build log is attached.)</i></p>
""", attachLog: true, compressLog: true
  }

效果如下:

image.png

关于一些参数

  • attachLog(可选):将构建日志以附件形式发送
  • compressLog(可选):压缩日志
  • recipientProviders(可选): List 类型,收件人列表类型
  • replyTo(可选):回复邮箱
  • recipientProviders (可选):收件人列表类型

类型名称

helper方法名

描述

Culprits

culprits()

引发构建失败的人。最后一次构建成功和最后一次构建失败之间的变更提交者列表

Developers

developers()

此次构建所涉及的变更的所有提交者列表

Requestor

requestor()

请求构建的人,一般指手动触发构建的人

Upstream Committers

upstreamDevelopers()

上游job变更提交者的列表

更多参数见文档

Slack 通知

Slack 号称邮件杀手,是一款国外很火的消息聚合平台服务,通过建立不同的频道降低团队沟通的干扰。

  1. Jenkins 安装 Slack Notification Plugin
  2. 打开插件Github官网,根据提示没有账号的话先申请账号
  3. Slack 端集成Jenkin CI,需要选择一个要推送通知的频道

image.png

  1. 根据指引配置就可以了,非常人性,下图在FreeStyle类型的项目中可配

image.png

image.png

  1. 如果需要通过Pipeline代码触发
代码语言:javascript
复制
post {
  always {
    slackSend channel: "#机器人", message: "Build Started: ${env.JOB_NAME} ${env.BUILD_NUMBER}"
  }

更多参数还是参见非常好用的Pipeline Syntax 的 Snippet Generator

image.png

效果:

image.png

钉钉通知

Slack 有时候国内速度访问比较慢,如果公司喜欢用钉钉,也可以集成钉钉通知。 步骤是类似的,不再赘述,见文档

参考

https://jenkins.io/doc/pipeline/steps/email-ext/ https://www.cnblogs.com/yangxia-test/p/4366172.html https://github.com/jenkinsci/slack-plugin Jenkins 钉钉通知插件

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.07.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 邮件通知
  • Slack 通知
  • 钉钉通知
  • 参考
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档