Devops 开发运维基础篇之使用Jenkins实现自动构建项目并邮件通知

本文详细介绍了如何配置Jenkins的构建触发器,包括远程构建、其他工程触发、定时构建和轮询SCM。重点讲解了Gitlab配置webhook以实现代码提交自动触发Jenkins构建,并展示了Jenkins参数化构建和邮箱服务器设置,用于发送构建结果邮件。此外,还提供了Jenkinsfile的编写示例,用于在构建后发送邮件通知。
摘要由CSDN通过智能技术生成


一、常用的构建触发器

Jenkins 内置4种构建触发器
① 触发远程构建
② 其他工程构建后触发(Build after other projects are build)
③ 定时构建(Build periodically)
④ 轮询SCM(Poll SCM)

1. 触发远程构建

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2. 其他工程构建后触发

在这里插入图片描述

在这里插入图片描述

开始构建前置项目
在这里插入图片描述

前置工程构建成功
在这里插入图片描述

回到web_demo_pipeline项目查看是否自动构建
在这里插入图片描述

3. 定时构建

定时字符串从左往右分别为: 分 时 日 月 周

#一些定时表达式的例子:
每30分钟构建一次:H代表形参 H/30 * * * * 10:02 10:322个小时构建一次: H H/2 * * *
每天的8点,12点,22点,一天构建3次: (多个时间点中间用逗号隔开) 0 8,12,22 * * *
每天中午12点定时构建一次 H 12 * * *
每天下午18点定时构建一次 H 18 * * *
在每个小时的前半个小时内的每10分钟 H(0-29)/10 * * * *
每两小时一次,每个工作日上午9点到下午5(也许是上午10:38,下午12:38,下午2:38,下午
4:38) H H(9-16)/2 * * 1-5

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. 轮询SCM

轮询SCM,是指定时扫描本地代码仓库的代码是否有变更,如果代码有变更就触发项目构建

注意:这次构建触发器,Jenkins会定时扫描本地整个项目的代码,增大系统的开销,不建议使用。

在这里插入图片描述
修改代码
在这里插入图片描述
提交代码
在这里插入图片描述

在这里插入图片描述
gitlab仓库查看是否提交成功
在这里插入图片描述
提交代码以后自动进行构建
在这里插入图片描述

tomcat服务器查看发布结果
在这里插入图片描述

等待二分钟查看是否继续构建

在这里插入图片描述

总结:
定时构建和轮询SCM的区别在于,定时构建不会去查看项目中代码的变化,到时间就自动构建,而轮询SCM会根据指定的时间扫描本地代码仓库的代码是否有变更,如果代码有变更就触发项目构建

二、Gitlab配置webhook

1. 开启webhook功能

Gitlab 服务器上使用 root 账户登录到后台,点击Admin Area -> Settings -> Network
勾选"Allow requests to the local network from web hooks and services"

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

切换到当前项目下进行设置

在这里插入图片描述

在这里插入图片描述

2. 在项目添加webhook,添加webhook和Gitlab插件

点击项目->Settings->Integrations

在这里插入图片描述

在这里插入图片描述

项目配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进行测试

在这里插入图片描述

在这里插入图片描述

报错解决
在这里插入图片描述

Manage Jenkins->Configure System
在这里插入图片描述
在这里插入图片描述

回到gitlab上再次test
在这里插入图片描述

idea中更改开发环境代码并进行代码提交

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

三、Jenkins的参数化构建

  • 有时在项目构建的过程中,我们需要根据用户的输入动态传入一些参数,从而影响整个构建结果,这时我们可以使用参数化构建

  • Jenkins支持非常丰富的参数类型

1. 构建配置

回到web_demo_pipeline项目中取消所有构建触发器选项

在这里插入图片描述

在这里插入图片描述
保存成功后会看到下面的效果
在这里插入图片描述

接下来演示通过输入gitlab项目的分支名称来部署不同分支项目

2. 项目创建分支,并推送到Gitlab上

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

创建分支

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
对V1分支的代码进行更改并提交
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

四、配置邮箱服务器发送构建结果

1. 安装Email Extension插件

在这里插入图片描述

2. Jenkins设置邮箱相关参数

在这里插入图片描述
往下拖会看到此选项
在这里插入图片描述

在添加邮件地址前,先开启邮箱SMTP功能

在这里插入图片描述

授权码:wehkuxrcptigbaji

Jenkins本地系统配置

在这里插入图片描述

邮箱参数设置

在QQ邮箱中可以看到详细的信息
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

配置测试
在这里插入图片描述
在这里插入图片描述

3. 准备邮件内容

切换提交分支master

在这里插入图片描述

在项目根目录编写email.html,并把文件推送到Gitlab,内容如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

<!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>
        <td>(本邮件是程序自动下发的,请勿回复!)</td>
    </tr>
    <tr>
        <td><h2>
            <font color="#0000FF">构建结果 - ${BUILD_STATUS}</font>
        </h2></td>
    </tr>
    <tr>
        <td><br />
            <b><font color="#0B610B">构建信息</font></b>
            <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>

        <td>



            <ul>
                <li>项目名称&nbsp;&nbsp;${PROJECT_NAME}</li>
                <li>构建编号&nbsp;&nbsp;第${BUILD_NUMBER}次构建</li>
                <li>触发原因:&nbsp;${CAUSE}</li>
                <li>构建日志:&nbsp;<a

                        href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                <li>构建&nbsp;&nbsp;Url&nbsp;&nbsp;<a href="${BUILD_URL}">${BUILD_URL}</a></li>
                <li> 工 作 目 录 &nbsp;&nbsp;<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                <li>项目&nbsp;&nbsp;Url&nbsp;&nbsp;<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><b><font color="#0B610B">Changes Since Last Successful Build:</font></b>
            <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>
        <td>
            <ul>
                <li> 历 史 变 更 记 录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
            </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br
        />%m</pre>",pathFormat="&nbsp;&nbsp;&nbsp;&nbsp;%p"}
        </td>
    </tr>
    <tr>
        <td><b>Failed Test Results</b>
            <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>
        <td><pre
                style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTS</pre>
            <br /></td>
    </tr>
    <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>
</table>
</body>
</html>

变量的帮助指南获取

在这里插入图片描述
在这里插入图片描述

邮件模板提交到gitlab的master分支上

在这里插入图片描述

4. 编写Jenkinsfile添加构建后发送邮件

Post代码模板生成指南:项目配置中点击《流水线语法》

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

编写Jenkinsfile添加构建后发送邮件,添加蓝色选中取余的代码段

在这里插入图片描述

    post {
        always {
            emailext(
                subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',body: '${FILE,path="email.html"}', to: '772147186@qq.com'
            )
        }
    }

编写好Jenkinsfile脚本后提交

在这里插入图片描述

在这里插入图片描述

5. 测试

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头发莫的了呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值