jenkins2025配置邮箱发送
一、jenkins邮箱系统配置,设置发件人
-
点击设置,找到系统管理员邮箱地址,填写发件人邮箱地址
-
gitee配置(选填)
-
往下拉,找到扩展电子邮件设置
-
默认邮件类型选择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> 本邮件由系统自动发出,无需回复!<br/> 各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br><td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></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>触发原因: ${CAUSE}</li> <li>构建状态: ${BUILD_STATUS}</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> <h4><font color="#0B610B">失败用例</font></h4><hr size="2" width="100%" />$FAILED_TESTS<br/><h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4><hr size="2" width="100%" /><ul>${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}</ul>
- 以下选填
- 以下选勾,默认不勾选
- 默认触发器(就是触发了什么条件才发邮件),暂时选择任何失败或成功都会发邮件
9. SMTP服务器,和上面填写一致,密码写授权码就行
- 点击测试,显示发送成功,应用保存
- 查看收件箱
二、创建流水线
-
新建item,名称任意,确定
-
gitee配置用户名、密码、gitee地址
-
其他默认
-
增加构建步骤
-
增加构建后的步骤,也有一个邮箱发送,这个是针对当前构建任务(先不添加,保持默认),保存,应用
-
执行构建,构建成功了,查看邮件没有收到邮件,所以,还需要对构建任务配置邮箱
-
添加一个构建后步骤,如果什么都不填写,选择构建,还是收不到邮件
-
构建后设置
9. 点击保存,应用,构建后查看
-
选择触发器类型的时,默认和外面的一致(也可以选择高级,重新写收件人)
-
执行构建后还是没有接收到邮件,系统设置的是成功或任何失败,构建内设置的是成功,有没有冲突的地方?我们把里面构建设置和外面一致,都选择成功或任何失败,执行后还是没有接收到邮件
-
回头查看,在全局设置的时候,漏掉一个地方,上面的账号有个高级,点击后填写账号密码必须和下面填写的一致(邮箱账号,邮箱密码)
-
点击构建后,查看QQ和163都正常收到邮件,如下
-
还有个地方是添加附件及构建附件日志的地方(看个人需求添加),不需要就默认保持就行
Tips: 可能很多人会犯以上错误,排查的时候尽量细心一点
三、设置邮件接收条件(成功、失败、成功和失败)
如果更改了触发条件,后面的构建够发条件(高级内的邮箱地址)尽量和上面设置的邮箱一致 不然也会收不到邮件
- 构建内只设置成功邮件(Triggers内的邮件地址和上面保持一致),全局默认,成功收到邮件
- 把代码改为失败,再次自动拉取代码执行如下,没有发邮件,设置成功
- 再改为成功或失败都发邮件,应用保存后,点击构建,还是可以可以正常能收到邮件,OK都没问题
使用HTMLTestRunnerNew库jenkins执行时有个缺点
如果以报告的形式输出结果,Jenkins判断不了,Jenkins构建只和文件执行是否正常有关,需要另外设置,什么意思呢,举例在执行接口自动化的时候加入了HTMLTestRunnerNew输出报告,Jenkins无法感知输出报告是成功还是失败,举例
- 构建后查看控制台,执行结果明明是F,但是Jenkins报成功,就验证了上面所说的内容
Tips:暂时使用unittest.main()的方式执行没问题,或后续如果有好的shell脚本执行也可以