jenkins-邮件通知|gitlab配置邮箱

root
233
文章
0
评论
2021年10月9日13:05:05 评论 3316字阅读11分3秒

jenkins-邮件通知|gitlab配置邮箱

gitlab-配置邮箱地址

默认情况可能每个Gitlab用户没有配置邮箱的, 需要Gitlab用户要配置好邮箱。 点击头像进入 edit profile

普通用户这样改

超级用户修改邮箱方法

然后再按上面的添加一遍

Jenkins配置邮件通知

Jenkins需要配置邮件通知,安装插件Email Extension安装后重启Jenkins。

然后进入系统管理-> 系统设置 , 先配置下全局的admin的邮箱地址。(最后配置下不然可能会出错的)

登入邮箱拿到授权码

发送短信之后获取授权码

然后进入系统管理-> 系统设置 ,gitlab,这里我使用的是QQ邮箱,填写SMTP服务器地址smtp.qq.com 和端口 465注意要开启SSL,密码为授权码。

换个选项注意下: 不选择 HTML 就是普通的文本, HTML 可以支持html网页,更加美观。这里选择 HTML 

pipeline as code , 进入片段生成器,生成邮件通知代码。

emailext body: 'hello world!....jenkins', subject: 'test.....', to: '30772818@qq.com'

 

jenkins as code 将email 写成一个函数。这个通知信息是一个html格式的。

//发送邮件
def EmailUser(userEmail,status){
    emailext body: """
            <!DOCTYPE html> 
            <html> 
            <head> 
            <meta charset="UTF-8"> 
            </head> 
            <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> 
                <img src="https://192.168.1.110:8080/images/headshot.png">
                <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">   
                    <tr> 
                        <td><br /> 
                            <b><font color="#0B610B">构建信息</font></b> 
                        </td> 
                    </tr> 
                    <tr> 
                        <td> 
                            <ul> 
                                <li>项目名称:${JOB_NAME}</li>         
                                <li>构建编号:${BUILD_ID}</li> 
                                <li>构建状态: ${status} </li>                         
                                <li>项目地址:<a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                                <li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li> 
                            </ul> 
                        </td> 
                    </tr> 
                    <tr>  
                </table> 
            </body> 
            </html>  """,
            subject: "Jenkins-${JOB_NAME}项目构建信息 ",
            to: userEmail

}

最后收到的邮件效果:

(完整的jenkinsfile )

//gitlab传递的数据{}
println("${webhookdata}")

//数据格式化
webhookdata = readJSON text: "${webhookdata}"

//提取仓库信息
env.srcUrl= webhookdata["project"]["git_http_url"]   //项目地址
env.branchName= webhookdata["ref"]-"refs/heads/"      // 分支
env.commitId= webhookdata["checkout_sha"]            //提交id
env.commitUser= webhookdata["user_username"]         // 提交人
env.userEmail = webhookdata["user_email"]            //邮箱

currentBuild.description = "Trigger by Gitlab \n branch: ${env.branchName} \n user: ${env.commitUser} "
currentBuild.displayName = "${env.commitId}"

pipeline{
    //指定运行此流水线的节点,指定标签的名字
    agent { node { label "build"}}
    stages{
        //阶段1 获取代码
        stage("CheckOut"){
            //定义阶段1的变量
            environment {
                NAME = "hwf01"
                VERSION = "1.1.11"
                ENVTYPE = "DEV1"
            }
            steps{
                script{
                    //branchName = "${params.branchName}"
                    //srcUrl = "${params.srcUrl}"
                    checkout([$class: 'GitSCM', branches: [[name: "${env.branchName}"]],
                              extensions: [],
                              userRemoteConfigs: [[credentialsId: 'gitlab-root',
                                                   url: "${env.srcUrl}"]]])
                }
            }
        }
        stage("Build") {
            //input加到这里就是选择是否运行
            input {
                message '选择部署的环境'
                ok '提交'
                submitter 'hwf'
                parameters {
                    choice choices: ["${env.srcUrl}"], name: "${env.branchName}"
                }
            }
            steps {
                script {
                    println("运行构建")
                    //要是想获取input的值,打印他的环境变量
                }
            }
        }
        stage("Test"){
            steps{
                script {
                    println("运行测试")

                }
            }
        }

    }
    post {
        always{
            script{
                println("流水线结束后,经常做的事情")
                EmailUser("${env.userEmail}", currentBuild.currentResult)
            }
        }

        success{
            script{
                println("流水线成功后,要做的事情")
            }

        }
        failure{
            script{
                println("流水线失败后,要做的事情")
            }
        }

        aborted{
            script{
                println("流水线取消后,要做的事情")
            }

        }
    }
}

//发送邮件
def EmailUser(userEmail,status){
    emailext body: """
            <!DOCTYPE html> 
            <html> 
            <head> 
            <meta charset="UTF-8"> 
            </head> 
            <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> 
                <img src="https://192.168.1.110:8080/images/headshot.png">
                <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">   
                    <tr> 
                        <td><br /> 
                            <b><font color="#0B610B">构建信息</font></b> 
                        </td> 
                    </tr> 
                    <tr> 
                        <td> 
                            <ul> 
                                <li>项目名称:${JOB_NAME}</li>         
                                <li>构建编号:${BUILD_ID}</li> 
                                <li>构建状态: ${status} </li>                         
                                <li>项目地址:<a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                                <li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li> 
                            </ul> 
                        </td> 
                    </tr> 
                    <tr>  
                </table> 
            </body> 
            </html>  """,
            subject: "Jenkins-${JOB_NAME}项目构建信息 ",
            to: userEmail

}

 

 

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 文本由 发表于 2021年10月9日13:05:05
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: