持续集成:Jenkins Pipeline 邮件通知

来源:悟空聊架构

本文目录如下:

  • 一、背景

  • 二、使用默认插件 Mailer Plugin

    • 2.1 检查插件是否安装

    • 2.2 插件配置

    • 2.3 测试邮件发送

    • 2.3 自由风格任务邮件配置

    • 2.4 流水线任务邮件配置

    • 2.5 邮件通知结果

  • 三、使用增强插件 Email Extension Plugin

    • 3.1 安装插件

    • 3.2 插件配置

    • 3.3 使用默认模板

    • 3.4 使用自定义的 groovy 脚本模板

    • 3.5 使用自定义 html 模板

  • 四、总结


一、背景

上次我们讲解了如何离线部署 Jenkins,这次我们要看看在部署完之后,如何将部署结果通过邮件形式发送出来。

Jenkins 文章汇总如下:

  • 1、丝滑的打包部署,一套带走

  • 2、喝杯咖啡,一键部署完成!(建议收藏)

  • 3、喝杯咖啡,一键部署前端项目

  • 4、用代码实现流水线部署后端项目,像诗一般优雅

  • 5、如果你还不理解 RBAC,看看 Jenkins 如何做到的

  • 6、离线部署 Jenkins 填坑指南

二、使用默认插件 Mailer Plugin

默认插件 Mailer Plugin 的功能较简单,能满足基本的要求。

2.1 检查插件是否安装

Jenkins 自带了一个发送邮件的插件 Mailer Plugin,如果没有安装,可以下载该插件并导入。下图是安装了该插件的结果。

2.2 插件配置

安装好插件之后还需要在全局配置中配置邮箱的地址。

http://:8082/manage/configure

如下图所示,配置了 SMTP 服务器,用户默认邮件后缀,发件箱地址和密码,SMTP 端口。另外还可以测试下邮件发送。

2.3 测试邮件发送

如果能收到测试邮件,则表示配置成功。

2.3 自由风格任务邮件配置

这个插件支持在自由风格项目中配置邮件通知,也可以用在流水线 Pipeline 脚本中。如下图所示,配置在自由风格项目中的配置:

这些配置的含义是当构件失败、不稳定、从不稳定变成稳定以及构件造成不良影响时,会发送邮件通知。

因 Pipeline 更灵活且可以定制邮件模板,所以推荐使用 pipeline 的方式。

2.4 流水线任务邮件配置

对应的 pipeline 脚本如下:

pipeline {  
    agent any  
    tools {  
        git 'Default'  
    }
    stages {  
        stage('获取最新代码') {  
            steps {  
                script {  
                    echo "获取最新代码"
                }
            }  
        }
    }
    post {
        always {
            echo '构建结束...'
        }
        success {
            echo '恭喜您,构建成功!!!'
            mail subject: "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 执行成功",
            body: """
                
                

CI报告


                
                    

Jenkins 运行结果


                    

                        
  • jenkins的执行结果 : jenkins 执行成功

  •                     
  • jenkins的Job名称 : ${env.JOB_NAME} [${env.BUILD_NUMBER}]

  •                     
  • jenkins的URL : ${env.BUILD_URL}

  •                     
  • jenkins项目名称 : ${env.JOB_NAME}

  •                     
  • Job URL : ${env.BUILD_URL}

  •                     
  • 构建日志:${BUILD_URL}console

  •                     

                

                
                
                

                

                """,
            charset: 'utf-8',
            from: 'xxxx@xxx.com.cn',
            mimeType: 'text/html',
            to: "xxx@xxxx.com.cn"
            //to : "${Recipient}"
         }
        failure {
            echo '抱歉,构建失败!!!'
            mail subject: "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 执行失败",
            body: """
            
            

CI报告


            
                

Jenkins 运行结果