Jenkins自动发送邮件配置及定时构建

Stella981
• 阅读 642

前言

在配置之前,我们需要安装好Jenkins,对于如何安装不在赘述,看我之前一篇安装教程(或者找度娘,教程很多)。接下来我们开始详细讲解build运行完成后自动发送邮件和定时自动构建build

系统配置

安装插件

我们在安装Jenkins的时候可以选择安装,也可以在安装之后选择安装需要的插件

1.点击Jenkins面板[Manage Jenkins]

Jenkins自动发送邮件配置及定时构建

2.管理Jenkins页面选择[Manage Plugins]插件管理

Jenkins自动发送邮件配置及定时构建

3.切换窗口到可选插件,右上角搜索插件Email Extension Template Plugin

Jenkins自动发送邮件配置及定时构建

4.安装后需要重新启动Jenkins(安装的时候有重启的选项,勾选上就可以了,安装完会自动重启),我这边已经安装好了

系统配置

同样,在管理Jenkins页面,点击[Configure Sysyem]系统配置

Jenkins自动发送邮件配置及定时构建

1.配置Jenkins Location

这里没啥可说的Url就是自己电脑的ip地址,后面跟Jenkins的默认端口

Jenkins自动发送邮件配置及定时构建

2.配置Extended E-mail Notification

Jenkins自动发送邮件配置及定时构建

 Jenkins自动发送邮件配置及定时构建

Jenkins自动发送邮件配置及定时构建

字段说明:默认收件人可以是多个,多个接受者使用逗号分隔

正文代码

<html>
<head>

${ENV, var="JOB\_NAME"}-第${BUILD\_NUMBER}次构建日志 本邮件由系统自动发出,无需回复!
各位同事,大家好,以下为${PROJECT\_NAME }项目构建信息 构建结果 - ${BUILD\_STATUS}

构建信息
项目名称 : ${PROJECT\_NAME} 构建编号 : 第${BUILD\_NUMBER}次构建 触发原因: ${CAUSE} 构建状态: ${BUILD\_STATUS} 构建日志: ${BUILD\_URL}console 构建 Url : ${BUILD\_URL} 工作目录 : ${PROJECT\_URL}ws 项目 Url : ${PROJECT\_URL}

<h4><font color="#0B610B">失败用例</font></h4>


$FAILED\_TESTS

<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>


${CHANGES\_SINCE\_LAST\_SUCCESS, reverse=true, format="%c", changesFormat="%d \[%a\] %m"} 详细提交:
${PROJECT\_URL}changes
        </td\>    
    </tr\>    
</table\>    

</body>
</html>

3.配置Jenkins自带的邮件功能

Jenkins自动发送邮件配置及定时构建

注意:不要勾选使用SSL协议,否则无法发送邮件;SMTP的端口和前面设置插件的端口一样,哪个有效就使用哪个(25和465)

 4.配置触发器Trigger

Jenkins自动发送邮件配置及定时构建 页面就这样一个按钮,找不到的时候仔细找肯定有,就在一个角落

Jenkins自动发送邮件配置及定时构建

ok,所有的配置都已经完成了,接下来我们先测试一下是否成功,再使用。

Jenkins自动发送邮件配置及定时构建

嗯,已经成功了,别忘记保存,接下来我们构建一个项目测试一下发送的邮件

构建项目

1.新建Job

Jenkins面板选择[新建item]

Jenkins自动发送邮件配置及定时构建

 2.命名Job名称并选择构建一个自由风格的项目

Jenkins自动发送邮件配置及定时构建

3.输入项目描述

Jenkins自动发送邮件配置及定时构建

4.源码管理

这里我们不适用任何的库直接选择None

Jenkins自动发送邮件配置及定时构建

5.构建触发器

Jenkins自动发送邮件配置及定时构建

我这里设置的是每5分钟构建一次实现定时自动构建

6.构建命令

Jenkins自动发送邮件配置及定时构建

我这里直接选择执行cmd命令

Jenkins自动发送邮件配置及定时构建

7.构建后操作

Jenkins自动发送邮件配置及定时构建

我们再次点击Advanced Settings 修改一下默认接受者(这里我们最好把默认的接受者都删除,然后自己重新添加,防止接收失败)

Jenkins自动发送邮件配置及定时构建

Jenkins自动发送邮件配置及定时构建

选择构建后发送邮件

Jenkins自动发送邮件配置及定时构建

说明:

我这里发送邮件时,带上了附件,那么附件是从report目录下的所有以.html格式的文件压缩成

Attach Build Log 这个选择可以根据自己情况选择,我选择的是发送邮件的附件会包含项目构建的日志

ok,以上设置完成之后保存即可

添加项目

我们找到Jenkins安装目录下的workspace目录,在此目录下我们会发现和我们之前新建项目时填写的名字一样的一个目录,没错了,这个目录就是Jenkins构建时的工作项目目录

注意: 如果worksapce下面你没找到你的项目名目录,你需要手动执行一次构建点击Build Now即可

Jenkins自动发送邮件配置及定时构建

手动构建之后就会自动生成我们Job名称命名的目录了

接下来我们复制我们的代码到这个目录中

Jenkins自动发送邮件配置及定时构建

结果展示

以上所有的工作完成之后我们可以选择手动构建,测试一下是否能够接受到邮件和邮件内容是否正确

Jenkins自动发送邮件配置及定时构建

控制台输出(部分内容)

Jenkins自动发送邮件配置及定时构建

等待构建完成,查看一下控制台日志和邮箱是否接受到正确的邮件

控制台日志

Jenkins自动发送邮件配置及定时构建

邮箱

正文

Jenkins自动发送邮件配置及定时构建

Jenkins自动发送邮件配置及定时构建

附件优化

这里附件有点多,我们只需要发送新的报告文件即可。我们再改一下构建时的命令

Jenkins自动发送邮件配置及定时构建

ok,保存,我们再次手动构建,或者直接等待时间到后自动构建,再次查看邮箱附件是否只有新生成的报告

Jenkins自动发送邮件配置及定时构建

可以看到我们的附件只有最新的报告和build日志了,开心吧! 赶紧试试吧

总结

本章主要讲解Jenkins配置自动发送邮件,配置自由风格的项目及定时构建。主要使用第三方报告插件,且要学会定时构建时的语法,好了,又多了个装逼的技能,赶紧跟着我试一试!

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这