• 第三章 持续集成jenkins工具使用之邮件配置


    1   Email Extension Plugin插件安装

    持续集成很重要的一环就是及时将构建结果通知到对应的责任人,如:构建失败了,至少需要下发通知给造成本次构建失败的开发人员,如果包含自动化测试,将测试结果通知到项目组成员也是非常重要的。

    发送通知我们最常用的都是邮件通知,如果你对邮件要求不高只是随便发送个通知,可以使用系统默认的邮件发送功能即可,但是通常情况下我们都会有一些比较特殊的要求,比如:构建失败时通知导致问题出现的人员,构建成功时通知全员,诸如此类。

    需要实现这些功能,我们需要使用到Email Extension Plugin插件。

    在开始之前我们需要确认是否已经安装该插件,确认方法有两种:

    其一:进入系统管理(Manage Jenkins)——插件管理(Manage Plugins)——installed页面,搜索Email Extension Plugin,如图:

     

    其二:进入系统管理(Manage Jenkins)——系统配置(Configure System),滑动页面可以看到:Extended E-mail Notification,如图:

     

    如果尚未安装,则需要进行安装,安装方式如下:

    进入系统管理(Manage Jenkins)——插件管理(Manage Plugins)——available,搜索Extended E-mail Notification按照指引进行安装

    1.2   邮件配置

    进入系统管理(Manage Jenkins)——系统配置(Configure System),配置如下:

    • 首先配置Jenkins Location:

     

    • 接下来配置Extended E-mail Notification信息:

    SMTP server:邮件服务器,如:smtp.163.com

    Default user E-mail suffix:邮件后缀,如:@163.com

    Default Recipients:默认邮件接收者

    Default Subject:默认主题

    Maximum Attachment Size:附件的最大大小

    Default Content:默认邮件内容

    Default Triggers:配置邮件触发规则

    配置如下图(详细配置以实际需要为准)

     

     

     

    以上配置完成后,可以勾选“Test configuration by sending test e-mail”项测试配置是否正确,如上图

    至此邮件配置基本完成。

    1.3   邮件模板配置

    根据3上一章节配置,基本能满足小团队开发需求,但是在中大型公司里面,一个jenkins里面可能需要配置n+个项目,而且每个项目的干系人又不一致,尤其是当配置库账号并非使用邮箱账号时,每个项目(或毎几个项目)需要配置不同的邮件发送规则(如:收件人),这时我们希望通过模板来配置,已减小配置及后续维护的工作量。

    这里我们需要使用到Email Extension Template Plugin插件,插件安装不再赘述,可参考第二章 Manage Plugins进行安装,如图:

    available安装

    安装完成之后在系统管理(Manage Jenkins)——系统配置(Configure System)页面增加了“Editable Email Notification Templates”功能项。

    点击进入后,可进行邮件模板的增加、修改、删除。

    以下只讲解增加功能,修改基本跟增加一样。

    进入“Editable Email Notification Templates”功能项后,可看到如下页面:

     

    点击“Add New Template”,进入增加页面,如图:

     

    图中其他项上文已经解释,不再赘述。将图中Project Recipient List的内容删除。

    配置的重点内容是advanceed settings。详细不做解释,相信大家都能看懂,如果不明白可私信。

    模板配置完成后可以在项目中配置使用该模板,详细见:http://www.cnblogs.com/ianduin/p/7667433.html

    1.1   邮件配置变量

    邮件通知配置相关的全局属性详解

    1. Override Global Settings:如果不选,该插件将使用默认的E-mail Notification通知选项。反之,您可以通过指定不同于( 默认选项)的设置来进行覆盖。

    2. Default Content Type:指定构建后发送邮件内容的类型,有Text和HTML两种.

    3. Use List-ID Email Header:为所有的邮件设置一个List-ID的邮件信头

    4. Add 'Precedence: bulk' Email Header:设置优先级

    5. Default Recipients:自定义默认电子邮件收件人列表。如果没有被项目配置覆盖,该插件会使用这个列表。您可以在项目配置使用$ DEFAULT_RECIPIENTS参数包括此默认列表,以及添加新的地址在项目级别。添加抄送:cc:电子邮件地址例如,CC:someone@somewhere.com

    6. Reply To List:回复列表, A comma separated list of e-mail addresses to use in the Reply-To header of the email. This value will be available as $DEFAULT_REPLYTO in the project configuration.

    7. Emergency reroute:如果这个字段不为空,所有的电子邮件将被单独发送到该地址(或地址列表)。

    8. Excluded Committers:防止邮件被邮件系统认为是垃圾邮件,邮件列表应该没有扩展的账户名(如:@domain.com),并且使用逗号分隔

    9. Default Subject:自定义邮件通知的默认主题名称。该选项能在邮件的主题字段中替换一些参数,这样你就可以在构建中包含指定的输出信息。

    10. Maximum Attachment Size:邮件最大附件大小。

    11. Default Content:自定义邮件通知的默认内容主体。该选项能在邮件的内容中替换一些参数,这样你就可以在构建中包含指定的输出信息。

    12. Default Pre-send Script:默认发送前执行的脚本(注:grooy脚本,这是我在某篇文章上看到的,不一定准确)。

    13. Enable Debug Mode:启用插件的调试模式。这将增加额外的日志输出,构建日志以及Jenkins的日志。在调试时是有用的,但不能用于生产。

    14. Enable Security:启用时,会禁用发送脚本的能力,直接进入Jenkins实例。如果用户试图访问Jenkins管理对象实例,将抛出一个安全异常。

    15. Content Token Reference:邮件中可以使用的变量,所有的变量都是可选的。

    全局邮件变量

    email-ext插件允许使用变量来动态插入数据到邮件的主题和内容主体中。变量是一个以$(美元符号)开始,并以空格结束的字符串。当一个邮件触发时,主题和内容主体字段的所有变量都会通过真实的值动态地替换。同样,变量中的“值”能包含其它的变量,都将被替换成真实的内容。

    比如,项目配置页的默认主题和内容分别对应的是全局配置页面的DEFAULT_SUBJECT和DEFAULT_CONTENT,因此它会自动地使用全局的配置。同理,触发器中的Subject和Content分别对应的是项目配置页面的DEFAULT_SUBJECT和DEFAULT_CONTENT,所以它也会自动地使用项目的配置。由于变量中的“值”能包含其它的变量,所以就能为变量快速地创建不同的切入点:全局级别(所有项目),专属级别(单一项目),触发器级别(构建结果)。

    如果你要查看所有可用的变量,你可以点击配置页的Content Token Reference的问号获取详细的信息。

    所有的变量都是可选的,每个变量可以如下表示,字符串类型使用name=“value”,而布尔型和数字型使用name=value。如果{和}标记里面没有变量,则不会被解析。示例:$TOKEN,${TOKEN},${TOKEN,count=100},${ENV,var=”PATH”}

    提示:用英文逗号分隔变量的参数。

    常用的属性如下:

    ${FILE,path="PATH"} 包括指定文件(路径)的含量相对于工作空间根目录。

    path文件路径,注意:是工作区目录的相对路径。

    ${BUILD_NUMBER} 显示当前构建的编号。

    ${JOB_DESCRIPTION} 显示项目描述。

    ${SVN_REVISION} 显示svn版本号。还支持Subversion插件出口的SVN_REVISION_n版本。

    ${CAUSE} 显示谁、通过什么渠道触发这次构建。

    ${CHANGES } -显示上一次构建之后的变化。

    showPaths 如果为 true,显示提交修改后的地址。默认false。

    showDependencies 如果为true,显示项目构建依赖。默认为false

    format 遍历提交信息,一个包含%X的字符串,其中%a表示作者,%d表示日期,%m表示消息,%p表示路径,%r表示版本。注意,并不是所有的版本系统都支持%d和%r。如果指定showPaths将被忽略。默认“[%a] %m\n”。

    pathFormat 一个包含“%p”的字符串,用来标示怎么打印路径。

    ${BUILD_ID}显示当前构建生成的ID。

    ${PROJECT_NAME} 显示项目的全名。

    ${PROJECT_DISPLAY_NAME} 显示项目的显示名称。

    ${SCRIPT} 从一个脚本生成自定义消息内容。自定义脚本应该放在"$JENKINS_HOME/email-templates"。当使用自定义脚本时会默认搜索$JENKINS_HOME/email-templatesdirectory目录。其他的目录将不会被搜索。

    script 当其使用的时候,仅仅只有最后一个值会被脚本使用(不能同时使用script和template)。

    template常规的simpletemplateengine格式模板。

    ${JENKINS_URL} 显示Jenkins服务器的url地址(你可以再系统配置页更改)。 

    ${BUILD_LOG_MULTILINE_REGEX}按正则表达式匹配并显示构建日志。

    regex java.util.regex.Pattern 生成正则表达式匹配的构建日志。无默认值,可为空。

    maxMatches 匹配的最大数量。如果为0,将匹配所有。默认为0。

    showTruncatedLines 如果为true,包含[...truncated ### lines...]行。默认为true。

    substText 如果非空,就把这部分文字(而不是整行)插入该邮件。默认为空。

    escapeHtml 如果为true,格式化HTML。默认为false。

    matchedSegmentHtmlStyle 如果非空,输出HTML。匹配的行数将变为<b style=”your-style-value”> html escaped matched line </b>格式。默认为空。

    ${BUILD_LOG} 显示最终构建日志。

    maxLines 日志最多显示的行数,默认250行。

    escapeHtml 如果为true,格式化HTML。默认false。

    ${PROJECT_URL} 显示项目的URL地址。

    ${BUILD_STATUS} -显示当前构建的状态(失败、成功等等)

    ${BUILD_URL} -显示当前构建的URL地址。

    ${CHANGES_SINCE_LAST_SUCCESS} -显示上一次成功构建之后的变化。

    reverse在顶部标示新近的构建。默认false。

    format遍历构建信息,一个包含%X的字符串,其中%c为所有的改变,%n为构建编号。默认”Changes for Build #%n %c ”。

    showPaths,changesFormat,pathFormat分别定义如${CHANGES}的showPaths、format和pathFormat参数。

    ${CHANGES_SINCE_LAST_UNSTABLE} -显示显示上一次不稳固或者成功的构建之后的变化。

    reverse在顶部标示新近的构建。默认false

      format遍历构建信息,一个包含%X的字符串,其中%c为所有的改变,%n为构建编号。默认”Changes for Build #%n %c ”。

    showPaths,changesFormat,pathFormat分别定义如${CHANGES}的showPaths、format和pathFormat参数。

    ${ENV} –显示一个环境变量。

    var– 显示该环境变量的名称。如果为空,显示所有,默认为空。

    ${FAILED_TESTS} -如果有失败的测试,显示这些失败的单元测试信息。

    ${JENKINS_URL} -显示Jenkins服务器的地址。(你能在“系统配置”页改变它)。

    ${HUDSON_URL} -不推荐,请使用$JENKINS_URL

    ${PROJECT_URL} -显示项目的URL。

    ${SVN_REVISION} -显示SVN的版本号。

    ${JELLY_SCRIPT} -从一个Jelly脚本模板中自定义消息内容。有两种模板可供配置:HTML和TEXT。你可以在$JENKINS_HOME/email-templates下自定义替换它。当使用自动义模板时,”template”参数的名称不包含“.jelly”。

    template模板名称,默认”html”。

    ${TEST_COUNTS} -显示测试的数量。

    var– 默认“total”。

    total -所有测试的数量。

    fail -失败测试的数量。

    skip -跳过测试的数量。

  • 相关阅读:
    vue-fullcalendar插件
    iframe 父框架调用子框架的函数
    关于调试的一点感想
    hdfs 删除和新增节点
    hadoop yarn 实战错误汇总
    Ganglia 安装 No package 'ck' found
    storm on yarn(CDH5) 部署笔记
    spark on yarn 安装笔记
    storm on yarn安装时 提交到yarn失败 failed
    yarn storm spark
  • 原文地址:https://www.cnblogs.com/ianduin/p/7666082.html
Copyright © 2020-2023  润新知