本文主要对 jenkins 的邮件通知进行介绍:(QQ:876040320微笑欢迎拍砖交流

  • jenkins 内置的邮件功能
  • 使用插件扩展的邮件功能

一,首先介绍jenkins自带的邮件功能与配置

  1. 首先进入系统管理--系统设置
  2. 找到"系统管理员的邮件配置地址",对管理员的邮件进行配置(邮件发送者)
  3. 找到“邮件通知”的配置项,这里以QQ邮件服务器为例子
  4. 点击“Test configuration" ,测试配置是否联通,如果收到以下邮件,证明配置成功了:
  5. 接下来对构建的项目进行邮件发送验证,这样每次构建后,接收者就能收到相应的邮件了,PS:不过这种配置只能发送给固定的接收人,并且邮件内容单一,不够自由

二,使用“Email Extension Plugin”插件进行邮件扩展

  1. 插件安装,进入系统管理-插件管理页面
  2. 输入“Email Extension Plugin”,查询插件并点击“立即安装”,我这里已经装过了就不在赘述了
  3. 继续进入“系统管理-系统设置页面”,找到“Extended E-mail Notification”配置模块,在这里配置插件的全局控制(如果需要每个项目进行特殊的配置,在项目配置后添加“构建后操作 选择“”Editable Email Notification”进行配置)邮件内容模板由于我选的是html模板,所以我把我用到的模板代码贴出来供大家参考,可以修改成自己需要的:
    <!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>(本邮件是程序自动下发的,请勿回复!)</td>
            </tr>
            <tr>
                <td><h2>
                        <font color="#0000FF">构建结果 - ${BUILD_STATUS}</font>
                    </h2></td>
            </tr>
            <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_NUMBER}次构建</li>
                        <li>SVN 版本: ${SVN_REVISION}</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">Changes Since Last
                            Successful Build:</font></b>
                <hr size="2" width="100%" align="center" /></td>
            </tr>
            <tr>
                <td>
                    <ul>
                        <li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
                    </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="    %p"}
                </td>
            </tr>
            <tr>
                <td><b>Failed Test Results</b>
                <hr size="2" width="100%" align="center" /></td>
            </tr>
            <tr>
                <td><pre
                        style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTS</pre>
                    <br /></td>
            </tr>
            <tr>
                <td><b><font color="#0B610B">构建日志 (最后 100行):</font></b>
                <hr size="2" width="100%" align="center" /></td>
            </tr>
            <!-- <tr>
                <td>Test Logs (if test has ran): <a
                    href="${PROJECT_URL}ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip">${PROJECT_URL}/ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip</a>
                    <br />
                <br />
                </td>
            </tr> -->
            <tr>
                <td><textarea cols="80" rows="30" readonly="readonly"
                        style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea>
                </td>
            </tr>
        </table>
    </body>
    </html>

  4. 至此你也许会问 这不还是用的固定的接收列表嘛 (⊙_⊙) ,别着急 看到右下角的“Advanced Settings”选项没, 继续配置,在这个选项配置中,你可以根据构建的不同状态选择对应需要接收邮件的接受者
  5. 构建项目,查看对应的邮件接受者是否正常接收邮件。
三,附: jenkins内置的环境变量
BUILD_NUMBER, 唯一标识一次build,例如23;

BUILD_ID,基本上等同于BUILD_NUMBER,但是是字符串,例如2011-11-15_16-06-21;

JOB_NAME, job的名字,例如JavaHelloWorld;

BUILD_TAG, 作用同BUILD_ID,BUILD_NUMBER,用来全局地唯一标识一此build,例如jenkins-JavaHelloWorld-23;
EXECUTOR_NUMBER, 例如0;

NODE_NAME,slave的名字,例如MyServer01;

NODE_LABELS,slave的label,标识slave的用处,例如JavaHelloWorld MyServer01;

JAVA_HOME, java的home目录,例如C:\Program Files (x86)\Java\jdk1.7.0_01;

WORKSPACE,job的当前工作目录,例如c:\jenkins\workspace\JavaHelloWorld;
HUDSON_URL = JENKINS_URL, jenkins的url,例如http://localhost:8000/ ;

BUILD_URL,build的url 例如http://localhost:8000/job/JavaHelloWorld/23/;

JOB_URL, job的url,例如http://localhost:8000/job/JavaHelloWorld/;

SVN_REVISION,svn 的revison, 例如4;

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐