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 }
继续阅读

我的微信
这是我的微信扫一扫
评论