Jenkins流水线执行完成后发送邮件通知

Jenkins流水线执行完成后发送邮件通知_第1张图片

安装插件

Jenkins需要配置邮件通知,安装插件Email Extension,然后进入系统管理-> 系统设置 ->Extended E-email Notification。这里我使用的是QQ邮箱,填写SMTP服务器地址smtp.qq.com 和端口 465注意要开启SSL,密码为授权码。

Jenkins流水线执行完成后发送邮件通知_第2张图片

配置插件

Jenkins流水线执行完成后发送邮件通知_第3张图片

邮件通知的功能很重要,我们要为每条流水线都加上这个步骤,我们在共享库中封装一个toemail.groovy。新建文件src/org/devops/toemail.groovy。在这个文件中,我们写了一段HTML代码,主要展示Jenkins的构建信息。

package org.devops


//定义邮件内容
def Email(status,emailUser){
    emailext body: """
             
             
             
             
             
             
                
                

构建信息
""", subject: "Jenkins-${JOB_NAME}项目构建信息 ", to: emailUser }

测试邮件

#!groovy


@Library('jenkinslibrary@master') _


//func from shareibrary
def gitlab = new org.devops.gitlab()
def toemail = new org.devops.toemail()


//branch
branchName = branch - "refs/heads/"
currentBuild.description = "Trigger by ${userName} ${branch}"
gitlab.ChangeCommitStatus(projectId,commitSha,"running")




//pipeline
pipeline{
    agent { node { label "build"}}
    stages{


        stage("CheckOut"){
            steps{
                script{
                    println("${branchName}")
                }
            }
        }
    }


    post {
        always{
            script{
                println("always")
            }
        }
        
        success{
            script{
                println("success")
                gitlab.ChangeCommitStatus(projectId,commitSha,"success")
                toemail.Email("流水线成功",userEmail)
            }
        
        }
        failure{
            script{
                println("failure")
                gitlab.ChangeCommitStatus(projectId,commitSha,"failed")
                toemail.Email("流水线失败了!",userEmail)
            }
        }
        
        aborted{
            script{
                println("aborted")
                gitlab.ChangeCommitStatus(projectId,commitSha,"canceled")
                toemail.Email("流水线被取消了!",userEmail)
            }
        
        }
    
    }
    
}

接下来可以调试了,如果没有问题会在邮箱中看到此封邮件。

Jenkins流水线执行完成后发送邮件通知_第4张图片

你可能感兴趣的:(Jenkins流水线执行完成后发送邮件通知)