-
Notifications
You must be signed in to change notification settings - Fork 68
客户端Jenkins自动构建指南之邮件通知
Jenkins 提供了两种方式的配置来实现邮件通知功能。 一种是 Jenkins 内置默认的邮件通知,但是由于功能局限单一,比如无法提供详细的邮件内容、无法定义发送邮件的格式、无法定义灵活的邮件接收配置等,所以此处只用它来测试邮件配置信息的有效性。 另外一种是通过安装 Eamil Extension Plugin 插件,使用该插件来发送邮件通知,我们的邮件提醒通知主要使用这种方式进行配置。
1、点击 +系统管理+->+系统设置+,找到 Jenkins Locaction 项填入 Jenkins URL 和系统管理员邮件地址,系统管理员邮件地址一定要配置,否则发不了邮件通知。因为邮件通知都是由系统管理员的邮箱发出来的。
2、找到邮件通知项,填入 SMTP 服务器信息及用户名、密码等认证信息,选中通过发送测试邮件测试配置,点击 Testconfiguration 按钮,如果如图所示,则表示配置成功。
3、这时在邮件中应该能看到刚刚我们发送的测试邮件啦,至此,内置邮件配置的作用已完成。
全局配置 同样点击 +系统管理+->+系统设置+,找到 Extension E-mail Notification 项进行全局配置。 基本信息 : 填写上述测试并正确的邮件信息 Default Content Type:默认内容类型,选择 HTML(text/html) Default Subject :默认邮件主题 Default Content : 默认内容,此处我填写的是一段 HTML 文本 Default Triggers :选择 Failure(Any) 和 Success
邮件默认内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<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>
<hr size="2" width="100%" align="center" />
</td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 :${PROJECT_NAME}</li>
<li>构建状态 :${BUILD_STATUS}</li>
<li>构建编号 :第${BUILD_NUMBER}次构建</li>
<li>触发原因 :${CAUSE}</li>
<li>构建日志 :<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建URL :<a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>工作目录 :<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
<li>项目URL :<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
</td>
</tr>
<tr>
<td><b><font color="#0B610B">变更集</font></b>
<hr size="2" width="100%" align="center" />
</td>
</tr>
<tr>
<td>${JELLY_SCRIPT,template="html"}<br/>
<hr size="2" width="100%" align="center" />
</td>
</tr>
</table>
</body>
</html>
项目配置 进入到具体的项目配置界面点击“配置”,在配置界面点击“增加构建后操作步骤”,选择“Editable Email Notification”,在设置中保存默认就可以啦。
可以在“Advanced Settings”中针对项目进行个性化设置。
当项目构建失败触发邮件通知时的设置
当项目构建成功触发邮件通知时的设置
构建成功后,收到邮件通知
构建布置之间进行传值 如果稍微仔细就会发现,收到的邮件通知中包含了一些非环境变量的内容,比如说APP版本、当前版本、全部版本、FTP地址、二维码等信息。关于这个功能,我们使用到了一个插件(Environment Injector Plugin),此插件可以通过读取文件中的变量,将其变为系统环境变量,方便我们之后的使用。 进入到项目配置界面点击“配置”,在配置界面点击“增加构建步骤”,选择“Inject environment variables”,在 Properties File Path 中填写文件路径,最好写完整路径,经验告诉我相对路径有可能读取失败。
上述文件是在构建过程中将变量值输出到文件中保存,代码如下:
# 删除旧文件
if [ -f ~/jenkins_sh/propfile.txt ] ; then
rm ~/jenkins_sh/propfile.txt
fi
# 输出变量到文件
echo "JOB_APP_NAME =$appName\n" > ~/jenkins_sh/propfile.txt
echo "JOB_APP_VERSION=$appVersion\n" >> ~/jenkins_sh/propfile.txt
echo "JOB_PGY_VERSION=$appBuildVersion\n" >> ~/jenkins_sh/propfile.txt
echo "JOB_APP_BUILD =$appVersionNo\n" >> ~/jenkins_sh/propfile.txt
echo "JOB_ALL_URL =$downloadUrl\n" >> ~/jenkins_sh/propfile.txt
echo "JOB_CRU_URL =$cruBuildUrl\n" >> ~/jenkins_sh/propfile.txt
echo "JOB_FTP_PATH =$ftpPath\n" >> ~/jenkins_sh/propfile.txt
echo "JOB_QRCODE_URL =$appQRCodeURL" >> ~/jenkins_sh/propfile.txt
上述当项目构建成功后触发邮件通知时设置的邮件内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-${BUILD_NUMBER}</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<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>
<hr size="2" width="100%" align="center" />
</td>
</tr>
<tr>
<td>
<ul>
<li>APP名称 :${JOB_APP_NAME}</li>
<li>APP版本 :${JOB_APP_VERSION}(build${JOB_APP_BUILD})</li>
<li>蒲公英号 :${JOB_PGY_VERSION}</li>
<li>全部版本 :${JOB_ALL_URL}</li>
<li>当前版本 :${JOB_CRU_URL}</li>
<li>FTP地址 :${JOB_FTP_PATH}</li>
<li>更新说明 :${PackageResume}</li>
<li> <img src="${JOB_QRCODE_URL}" /></li>
</ul>
</td>
</tr>
</table>
</body>
</html>
# 拼上默认邮件内容
$PROJECT_DEFAULT_CONTENT