用多少眼泪才能让你相信 发表于 2024-7-24 07:26:05

持续集成08--Jenkins邮箱发送构建信息及测试报告

前言

           在持续集成(CI)和持续摆设(CD)的自动化流程中,及时关照团队成员关于构建的成功或失败是至关重要的。Jenkins,作为强大的CI/CD工具,提供了多种关照机制,其中邮件关照是最常用且有效的本领之一。本章节“持续集成08--Jenkins配置邮箱发送构建信息”将详细先容怎样在Jenkins中配置邮件发送功能,包括SMTP服务器的设置、邮件内容的自定义以及触发邮件发送的条件等,帮助团队实现更加高效和及时的沟通。
1、设置发送者邮箱

        进入Manage Jenkins--System--Jenkins Location,系统管理员邮件地址填写自己的邮箱
https://i-blog.csdnimg.cn/direct/780a9967d7844cff9882c79aa67458c1.png
2、系统邮箱关照配置(qq邮箱为例)

        2.1、邮箱授权

        首先进行qq邮箱授权,qq授权码:登录qq邮箱,进入设置--账号--POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启服务,按照提示的验证方式进行授权验证,生成授权码;授权码记得记录下来,关闭后不可再次进行检察。
https://i-blog.csdnimg.cn/direct/1af356438675437f946b0405e1f9543c.png
https://i-blog.csdnimg.cn/direct/b580a15209ee4ab9beb31a93dc9d4d8d.png
        2.2、配置邮箱 

        进入Manage Jenkins--System--邮箱关照,填写内容如图所示;打开高级,SMTP认证用户名要和我们上面设置的发送者邮箱一致,密码不是我们qq邮箱密码,不是qq邮箱密码,不是qq邮箱密码;此处密码填写上面我们生成的qq授权码;然后勾选使用SSL协议,端口改成465。
https://i-blog.csdnimg.cn/direct/0bf1d2b32d7b4786a20e9b4700af35d2.png
        2.3、测试邮箱发送 

        配置完毕后可以勾选通过发送测试邮件测试配置,Test e-mail填写邮箱地址,点击右下角Test,假如出现成功则分析配置完成,可以到QQ邮箱检察吸收到的邮件。
https://i-blog.csdnimg.cn/direct/06e88d330eff4dd6b5393ab0f7660dd2.png
https://i-blog.csdnimg.cn/direct/6d29049f3fc34137bb55e54310856abe.png
3、系统配置邮箱扩展

        3.1、安装插件

         Jenkins安装插件:Email Extension
https://i-blog.csdnimg.cn/direct/ba67d80bf5034c9593bcf305ed812a2e.png
        3.2、配置扩展 

        进入Manage Jenkins--System,找到Extended E-mail Notification,此处配置和我们邮件关照配置相似,打开高级,凭证添加方式和之前一样,用户名是qq邮箱,密码不是qq邮箱密码,不是qq邮箱密码,是qq邮箱授权码
https://i-blog.csdnimg.cn/direct/8199b100341241b3a04d1e2e2706dae6.png
https://i-blog.csdnimg.cn/direct/18a4f2c1fff640b78431089624034793.png
        3.3、开启Debug模式

         配置完后建议勾打开Enable Debug Mode,在我们构建时可以在日记输出页面打印出邮件相关日记,便于我们排查信息,流程走通后可以再关掉
https://i-blog.csdnimg.cn/direct/278634b5a71241348388185392af6441.png
4、项目邮箱关照配置

        4.1、开启邮箱关照

        进入项目配置页,在末了增加构建后操作步调,选择Editable Email Notification;
https://i-blog.csdnimg.cn/direct/27a206f7ad42471bb92d57ae2eb70750.png
        4.2、添加默认吸收人 

        在Editable Email Notification内先为项目添加一个默认吸收人
https://i-blog.csdnimg.cn/direct/c50cf22745174bc5bb20a214c0dfd55a.png
         4.3、选择发送条件

        打开高级设置(Advanced Settings)--打开Adding Trigger--选择always(表现构建发送邮件,其他选项包罗构建成功发送、构建失败发送等,根据自己需求进行选择)
https://i-blog.csdnimg.cn/direct/56f30539989c4479bf390a6f625ec406.png
        4.4、添加吸收人员

         Sent To表现发送对象,这里选择的是开发人员和吸收人员
https://i-blog.csdnimg.cn/direct/78a3d83d15f14a498c486f7eb45be5cd.png
        4.5、配置发送内容

            打开高级
            Recipient List(吸收者列表):多个吸收者用逗号隔开
            Content Type(邮件内容格式):选择html
            Subject(邮件主题):$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!,此模板包罗项目名、jenkins构建编号、构建状态;
            Content(邮件内容,下面使邮件模板):
$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
<!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>    <br/>
            本邮件由Jenkins系统自动发出,无需回复!<br/>            
            各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>   
      </tr>   
      <tr>   
            <td><br />   
            <b><font color="#0B610B" style="font-size: 11pt">构建信息</font></b>   
            <hr size="2" width="100%" align="center" /></td>   
      </tr>   
      <tr>   
            <td>   
                <ul style="font-size: 11pt">   
                  <li>项目名称: ${PROJECT_NAME}</li>   
                  <li>构建编号: 第${BUILD_NUMBER}次构建</li>   
                  <li>触发原因: ${CAUSE}</li>   
                  <li>构建状态: ${BUILD_STATUS}</li>
                  <li>系统Allure测试报告:<a href="${PROJECT_URL}${BUILD_NUMBER}/allure">${PROJECT_URL}${BUILD_NUMBER}/allure</a></li>
                  <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>   
                  <li>构建地址: <a href="${BUILD_URL}">${BUILD_URL}</a></li>   
                  <li>项目地址: <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>   
                </ul>   


<h4><font color="#0B610B" style="font-size: 11pt">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>


<h4><font color="#0B610B" style="font-size: 11pt">最近提交</font></h4>
<hr size="2" width="100%" />
<ul style="font-size: 11pt">
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes" style="font-size: 11pt">${PROJECT_URL}changes</a><br/>
            </td>   
      </tr>   
    </table>   
</body>   
</html> https://i-blog.csdnimg.cn/direct/48ce581454404e75b8ea8734c0205b22.png
        4.6、构建项目

        配置完成便可进行项目的构建,测试邮件吸收环境,若出现吸收不到邮件的环境,构建过程中检察日记输出信息,根据失败缘故原由定位问题
https://i-blog.csdnimg.cn/direct/b20c6a361b93446db0c2daaac3e865fb.png
5、 邮件发送allure报告附件

        在构建完成后邮件内容只有检察报告的链接,无法离线检察,我们可以将allure报告文件夹压缩后作为附件,然后进行下载检察。
        5.1、附件配置

        路径较深,细致找:进入到项目配置页--找到Editable Email Notification--最下面打开Advanced Settings--Triggers栏,打开高级,也就是我们配置邮件模板的下面,找到Attachments; Attachments(附件):需要在工作空间相对路径目录下的文件,不能填写绝对路径,否则找不到文件;点击the workspace可以检察工作空间,这个路径就是我们代码目录,附件可以填写allure报告文件;
https://i-blog.csdnimg.cn/direct/12c944f819a14765acfed95398b41b90.png
https://i-blog.csdnimg.cn/direct/b7da0d6c59a14318bc70a4efee98e4b6.png
        5.2、压缩文件

        一样平常发送附件为压缩文件,而非文件夹,但是我们目录下并没有压缩文件,于是我就想着将allure报告文件夹压缩后再进行附件的发送;但是Jenkins构建后操作并不能添加shell脚本,需要安装插件post build task进行构建后执行shell脚本,压缩allure报告
https://i-blog.csdnimg.cn/direct/e04267564fe14b6fb8112da0d569c476.png
        安装好插件后进入到项目配置页,拉到末了增加构建后操作步调,选择post build task

https://i-blog.csdnimg.cn/direct/09f4bfd589da47e28250b45249a78143.png
         Script栏添加压缩allure报告文件夹的shell脚本,注意:此步调要移动到生成allure report和发送邮件Editable Email Notification步调的中间,也就是说生成报告,进行压缩,然后再发送邮件
https://i-blog.csdnimg.cn/direct/5c249b1935204b1ab4f3ec6c8a81d296.png
#!/bin/bash
# 压缩allure_report
zip -r allure_report.zip allure_report/          保存后构建项目,可以看到附件来了
 https://i-blog.csdnimg.cn/direct/c9d845e0d2474addb613afbf51e919a3.png
6、allure报告离线检察

        附件是可以发送了,但是下载的附件解压后会发现index.html页面加载不到数据。这次因为allure报告需要allure服务才气进行检察,直接打开是无法检察的。
https://i-blog.csdnimg.cn/direct/e2833ea4a362402b8da8630267eac726.png
        6.1、allure报告离线检察方式一

        创建文件一个后缀名为.bat文件,在文件内写入以下内容,然后将这个文件放到我们解压出来的报告地点文件夹下,通过双击运行这个bat文件来打开报告页面。假如内部使用,可以将创建好的.bat文件提前发送给使用人,然后让他放到报告文件夹下。
https://i-blog.csdnimg.cn/direct/751dbdbe4c324bf9a6c1d4b7f7a6c4a8.png
:: 【本地环境无法打开allure报告,此文件主要解决在本地打开allure报告】
@echo off
    if "%1" == "h" goto begin
    mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
    :begin
    cd ..
    :: 【注意:这里的 allure_report 替换成你自己报告文件夹的名字】
    allure open allure_report https://i-blog.csdnimg.cn/direct/17b93583330a4bafb6e84bf92567e479.png
https://i-blog.csdnimg.cn/direct/e7a9bb6bf2224b6883fcd2af0b77c165.png
        6.2、allure报告离线检察方式二(未成功)

        通过单独发送bat文件的方式需要告知吸收方,怎样创建bat文件与使用,有点麻烦;于是我在想假如将bat文件放到我们的项目代码中,生成报告后将bat文件复制到allure报告文件夹内,然后再进行压缩,作为附件发送给吸收方,如许就不消让吸收方做额外的操作了。
        开始行动: 首先将bat文件创建好,放到我们的代码中(注意:linux环境不要使用中文,要用英文名);然后进入到Jenkins项目配置页,找到post build task,在shell下令压缩文件前添加复制bat文件到报告内的下令,然后保存,构建项目
# 将bat文件添加到allure报告中,使其可以在其他设备查看allure报告
cp -r ./open_report.bat ./allure_report/ https://i-blog.csdnimg.cn/direct/f935ead5fa85447fb4e974b193fa0a76.png
        保存后进行构建,吸收到邮件下载附加后解压,通过bat文件运行打开allure报告。。。
        然而我无法运行,打不开报告,系统卡死!!!经过各种排查,发现我从本地将bat推送到gitee这一步就不行了;本地原文件可以打开报告,上传到gitee,再从gitee下载下来这个bat就打不开报告了,这从源头就给我按死了,至今未解决,甚是不解啊。。。
https://i-blog.csdnimg.cn/direct/9f8e793b685748088d84f3bd1bd8b081.jpeg
        总结:我目前只能通过方式一来进行实现了,将bat文件单独发送给吸收方,让吸收方放到allure报告内检察;方式二是一个优化的思路,感兴趣的朋侪可以尝试方式二是否正常,假如能实现这套流程还黑白常nice的;然而,我放弃。。。后续有解决方法了再来更新吧
总结

           通过本章节“持续集成08--Jenkins配置邮箱”的学习,可以基本掌握在Jenkins中配置邮件发送功能的关键步调。从SMTP服务器的配置到邮件内容的自定义,再到触发邮件发送的条件设置,每一步都详细论述了怎样操作。现这将大大提升团队的相应速率和协作效率,为持续集成和持续摆设流程的顺利进行提供有力保障。同时,通过自定义邮件内容,还可以根据现实需求调整关照的详细水平和格式,使团队成员可以或许更加清楚地了解构建状态和需要接纳的行动。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 持续集成08--Jenkins邮箱发送构建信息及测试报告