4.5.1、最终效果如下
触发自动构建部署后发送邮件
4.5.2、编写邮件共享库
文件目录名:src/org/devops/toemail.groovy
--Jenkins图标地址:<img src="http://47.93.249.164:8888/static/0eef74bf/images/headshot.png">
=================================================================================================
package org.devops
//定义邮件内容
def Email(status,emailUser){
emailext body: """
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
<img src="http://47.93.249.164:8888/static/0eef74bf/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: emailUser
}
4.5.3、编写Jenkinsfile调用邮件共享库
文件名:Jenkinsfile
#!groovy
//引用Library库
@Library('jenkinslib@master') _
//引用构建共享库
def build = new org.devops.build()
//引入发布共享库
def toemail = new org.devops.toemail()
String srcUrl = "${env.srcUrl}" //引用参数
String branchName = "${env.branchName}" //引用参数
String buildType = "${env.buildType}" //引用参数
String buildShell = "${env.buildShell}" //引用参数
String user_email = "${env.user_email}" //引用参数
pipeline {
agent {
node {
label "master" //构建主机
}
}
stages {
//下载代码
stage("CheckOut") {
steps {
script {
checkout([$class: 'GitSCM', branches: [[name: "${branchName}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'gitlabpwd', url: "${srcUrl}"]]])
}
}
}
stage("Build") {
steps {
script {
//引入构建共享库内函数
build.Build(buildType,buildShell)
//引用发布共享库内函数
}
}
}
}
post {
always{
script{
println("流水线结束后,经常做的事情")
}
}
success{
script{
println("流水线成功后,要做的事情")
toemail.Email("流水线构建成功",user_email)
}
}
failure{
script{
println("流水线失败后,要做的事情")
toemail.Email("流水线构建失败",user_email)
}
}
aborted{
script{
println("流水线取消后,要做的事情")
toemail.Email("流水线构建取消",user_email)
}
}
}
}
4.5.4、gitlab配置邮箱
gitlab配置的邮箱为代码提交者的邮箱,目的是为了提醒开发人员提交代码后Jenkins构建是否成功。一般每创建一个用户,都需要为该用户添加一个邮箱。
4.5.4.1、新建用户
4.5.4.2、项目设置权限
wangyueying用户只能看到刚刚设置权限的两个仓库
4.5.4.3、王越颖用户自行设置邮箱地址
4.5.5、Jenkins配置
4.5.5.1、Jenkins插件安装
Email Extension Template
Email Extension Plugin
4.5.5.2、Jenkins项目配置
其他按照4.1/4.2/4.3/4.4配置
4.5.5.3、Jenkins系统管理配置添加邮件服务器
password为邮件的授权码
4.5.6、gitlab代码提交
触发自动构建