Jenkins发送邮件、定时执行、持续部署

2022-04-12 14:43:08 浏览数 (1)

集成Allure报告只需要配置构建后操作即可。但如果是web自动化,或是用HTMLTestRunner生成报告,构建后操作要选择Publish HTML reports,而构建中还要添加Execute system Groovy script插件,内容:

代码语言:javascript复制
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

不然生成的报告会样式丢失。

Jenkins发送邮件

  • 1安装插件>Email
  • 2获得邮箱客户端密码

这个密码不是登录密码而是POP3/SMTP的授权码,开启的时候需要发短信验证

  • 3系统管理->系统配置/Config System

1)系统管理员邮件

2)Extended E-mail Notification

配置管理员邮箱

3)后缀

默认后缀

4)默认收件人,以英文逗号分隔

默认收件人,以英文逗号分隔

5)邮件主题和内容(附代码)

邮件主题和内容

代码:

Default Subject

代码语言:javascript复制
【构建通知】$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!

Default Content

代码语言:javascript复制
<!DOCTYPE html>

<html lang="en">
<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>
            <font color="red">构建状态:${BUILD_STATUS};下载allure-report.zip到本地后可以通过命令行"allure open 报告路径"进行查看</font>
        </tr>
        <tr>
            <td><br/>
            <b><font color="#0B610B">项目描述:${JOB_DESCRIPTION}<br></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>
                    <li>系统allure测试报告:<a HREF="${PROJECT_URL}${BUILD_NUMBER}/allure">${PROJECT_URL}${BUILD_NUMBER}/allure</a></li>
                </ul>
    </td>
        <tr>
         <td>
            <b><font color="#0B610B">构建日志 (最后 100行):</font></b>
        <hr size="2" width="100%" align="center" />
            </td>
        </tr>
        <tr>
           <td>
                <textarea cols="80" rows="30" readonly="readonly" style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea>
            </td>
        </tr>
        ${JELLY_SCRIPT}
    </table>
</body>
</html>

6)邮件通知

邮件通知

配置好后,可以进行测试

测试

配置job构建后的操作

选择Editable Email Notification插件

删掉只有失败时才会触发发邮件操作,新增Always触发器

去掉失败才触发发邮件操作

新增触发器,选择Always

点击保存。

构建项目,即可收到邮件:

邮件样式

邮件样式可以复制代码以后自己修改,或者自己写代码。

Jenkins定时任务

在job配置中选择构建触发器->定时构建/Build Periodically日程表中写入* * * * *这五个星分别代表分-时-日-月-年,如果要设定每天9:30执行,就写30 9 * * *注意时间是24小时制的,晚上九点就要写21点。

Jenkins持续部署/CD

我们每次需求更新,开发写完代码后要同步到测试服务器,然后进行测试。如果每次都要自己去手动拉去代码然后部署有些麻烦,这时候就可以利用Jenkins进行持续部署,就是我们说的CD。

现在都从GitHub/Gitee拉取代码

我们原来的代码复制一份,取名DayOneTest(注意:要么您不要操作,如果操作一定要复制代码,也就是备份代码!备份代码!备份代码!

复制来的代码文件

然后修改我们的Jenkins工作空间

然后到配置->源码管理添加Gitee地址

按照Gitee信息填写

点击添加后选择Jenkins

选择代码分支

点击保存。

我们现在执行构建,您会发现,文件夹里的内容被删掉了,变成了Gitee里面的内容。这就是为什么操作之前要备份代码的原因。

目前来看,持续集成CI和持续部署CD比较适合分开成两个job来做,因为每次部署时会删掉原来的代码同步成GitHub/Gitee上最新的代码,这时候进行执行任务会出现有文件丢失的情况出现。

0 人点赞