Jenkins自动发送邮件配置及定时构建
前言
在配置之前,我们需要安装好Jenkins,对于如何安装不在赘述,看我之前一篇安装教程(或者找度娘,教程很多)。接下来我们开始详细讲解build运行完成后自动发送邮件和定时自动构建build
系统配置
安装插件
我们在安装Jenkins的时候可以选择安装,也可以在安装之后选择安装需要的插件
1.点击Jenkins面板[Manage Jenkins]

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

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

4.安装后需要重新启动Jenkins(安装的时候有重启的选项,勾选上就可以了,安装完会自动重启),我这边已经安装好了
系统配置
同样,在管理Jenkins页面,点击[Configure Sysyem]系统配置

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

2.配置Extended E-mail Notification



字段说明:默认收件人可以是多个,多个接受者使用逗号分隔
正文代码
<!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>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/> </td>
</tr>
</table>
</body>
</html>
3.配置Jenkins自带的邮件功能

注意:不要勾选使用SSL协议,否则无法发送邮件;SMTP的端口和前面设置插件的端口一样,哪个有效就使用哪个(25和465)
4.配置触发器Trigger
页面就这样一个按钮,找不到的时候仔细找肯定有,就在一个角落

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

嗯,已经成功了,别忘记保存,接下来我们构建一个项目测试一下发送的邮件
构建项目
1.新建Job
Jenkins面板选择[新建item]

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

3.输入项目描述

4.源码管理
这里我们不适用任何的库直接选择None

5.构建触发器

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

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

7.构建后操作

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


选择构建后发送邮件

说明:
我这里发送邮件时,带上了附件,那么附件是从report目录下的所有以.html格式的文件压缩成
Attach Build Log 这个选择可以根据自己情况选择,我选择的是发送邮件的附件会包含项目构建的日志
ok,以上设置完成之后保存即可
添加项目
我们找到Jenkins安装目录下的workspace目录,在此目录下我们会发现和我们之前新建项目时填写的名字一样的一个目录,没错了,这个目录就是Jenkins构建时的工作项目目录
注意: 如果worksapce下面你没找到你的项目名目录,你需要手动执行一次构建点击Build Now即可

手动构建之后就会自动生成我们Job名称命名的目录了
接下来我们复制我们的代码到这个目录中

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

控制台输出(部分内容)

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

邮箱
正文


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

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

可以看到我们的附件只有最新的报告和build日志了,开心吧! 赶紧试试吧
总结
本章主要讲解Jenkins配置自动发送邮件,配置自由风格的项目及定时构建。主要使用第三方报告插件,且要学会定时构建时的语法,好了,又多了个装逼的技能,赶紧跟着我试一试!
Jenkins自动发送邮件配置及定时构建的更多相关文章
- jenkins自动发送邮件配置
一. 前提:确保插件存在 在一切开始之前,必须得确保任务配置里有两个插件:E-mail Notification(邮件通知) 和 Editable Email Notification(可编辑的邮件通 ...
- postman(十):配置jenkins自动发送邮件(邮件包含测试报告)
继续说一下jenkins与postman的集成 上一篇通过jenkins远程执行postman导出的脚本,并把html报告指定输出到了jenkins对应的job工作空间,接下来配置一下当jenkins ...
- Jenkins+github的一次定时构建示例
首先说明,我的电脑环境是windows,所以以下的示例是基于windows10 X64. 一.新建任务,填写名称,选择类型,点击左下角的[确定] 二.配置 1.General 2.源码管理 之前在gi ...
- Jenkins自动打包配置
当时也是花费了不少时间来配置Jenkins自动打包的问题,觉得还是需要记录一下. 1.安装Jenkins,这个很简单,不需要多说. 2.下载Git Plugin,Gradle Plugin,Andro ...
- jenkins自动化部署项目9 --定时构建
举几个例子:每隔5分钟构建一次H/5 * * * * 每两小时构建一次H H/2 * * * 每天中午12点定时构建一次H 12 * * * 每天下午18点定时构建一次H 18 * * * 在每个小时 ...
- jenkins自动拉取git分支构建项目
一,创建jenkins项目 new item ->freestyle project, 自定义一个项目名称 二,配置项目 1,Source Code Management 选择 git,输入gi ...
- Jenkins配置自动发送邮件,成功!
Jenkins自动发送邮件配置: 打开"系统管理"--"系统设置" 在"Jenkins Location"设置系统管理员地址(重要:不能省略 ...
- [原] Jenkins Android 自动打包配置
一.Jenkins自动打包配置 目标:1. 自动打包:2. 自动上传:3. 友好下载 1. Jenkins简介 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作. 减少重复劳 ...
- Jenkins进阶之自动发送邮件的Default Content设置模板
分享一个简洁实用的Jenkins项目邮件管理系统的"Default Content"设置模板 配置如下: <h1><center><font colo ...
随机推荐
- Requests库主要方法解析以及Requests库入门需要掌握的框架
Requests库主要方法解析以及Requests库入门 1.requests.request(method,url,**kwargs) **kwargs:控制访问的参数,均为可选项 params:字 ...
- Elasticsearch 6.x版本全文检索学习之Search API
Elasticsearch 6.x版本全文检索学习之Search API. 1).Search API,实现对es中存储的数据进行查询分析,endpoind为_search,如下所示. 方式一.GET ...
- 2018-8-10-win10-uwp-商业游戏-
原文:2018-8-10-win10-uwp-商业游戏- title author date CreateTime categories win10 uwp 商业游戏 lindexi 2018-08- ...
- C# MediaPlayer
using System.Windows.Media; using Newtonsoft.Json; using System.ComponentModel; namespace ConsoleApp ...
- C# - VS2019页面布局容器splitContainer和groupBox小结
前言 在WinFrm应用程序中,产品的外观.布局将直接影响用户第一体验,所以对于开发者来说,在没有美工支持的前提下,应当注意系统页面的布局,本章主要讲解splitContainer和groupBox的 ...
- python3的reload(sys)
import sys reload(sys) sys.setdefaultencoding(‘utf-8’) 以上是python2的写法,但是在python3中这个需要已经不存在了,这么做也不会什么实 ...
- HTTP:Web的基础
一.HTTP:Web的基础 1.URI 每个Web服务器资源都有一个名字,这样客户端就可以说明它们感兴趣的资源是什么了.服务器资源名称被称为统一资源标识符(URI) URI有两种形式,分别为URL和U ...
- Vue入门、插件安装
一.Vue 1.什么是Vue? (1)官网地址: https://cn.vuejs.org/ (2)Vue是一个渐进式的JavaScript框架.采用自底向上增量开发的设计.可以简单的理解为Vue是一 ...
- Java基础--常用API--IO流相关API
一.IO流 1.定义: IO流指的是Input/Output流,即输入流/输出流. 输入流:将外界信息写入程序,即从外界获取信息,属于读操作. 输出流:将程序数据发送给外界,即向外界传输数据,属于写操 ...
- 关于在 ASP.NET 的 Global.asax 中 Application_Error 方法内,设置跳转到自定义错误页无效的问题
转自:https://www.cnblogs.com/OpenCoder/p/5070645.html 在 Global.asax 中的 Application_Error 方法中,使用 Respon ...