Jenkins触发器和邮件通知

目录

一、Jenkins项目构建细节常用的构建触发器

1.触发远程构建

2.其他工程构建后触发

3.定时构建

4.轮询SCM

二、Gitlab配置webhook

1.开启webhook功能

2.在项目添加webhook

三、Jenkins项目构建细节Jenkins的参数化构建

四、Jenkins项目构建细节配置邮箱服务器发送构建结果


一、Jenkins项目构建细节常用的构建触发器

Jenkins内置4种构建触发器:

触发远程构建

其他工程构建后触发(Build after other projects are build

定时构建(Build periodically

轮询SCM(Poll SCM

1.触发远程构建

验证效果,在IDEA上创建项目

重新开启各网页访问以下路径,项目自己创建

2.其他工程构建后触发

创建pre_project流水线工程

回到web_demo_pipeline项目配置

开始构建前置项目

在构建前置项目的时候,web_demo_pipeline项目也会构建

3.定时构建

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

演示定时创建流程

4.轮询SCM

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

演示轮询创建方式

在IDEA里修改代码

查看自动构建效果

浏览器查看效果

二、Gitlab配置webhook

1.开启webhook功能

使用root账户登录到后台

点击Admin Area -> Settings -> Network,勾选"Allow requests to the local network from web hooks and services" 

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

2.在项目添加webhook

安装插件 Generic Webhook Trigger 和 Gatlab

点击项目->Settings->Integrations

添加完地址后,进行测试

如果测试报错

完善配置,否则会报错

重新进行测试

自动使用web hook完成构建

代码提交后,自动构建

浏览器查看效果

三、Jenkins项目构建细节Jenkins的参数化构建

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

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

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

创建新分支

构建发生了变化

演示通过输入gitlab项目的分支名称来部署不同分支项目。 项目创建分支,并推送到Gitlab 

构建项目查看效果

新建分支v1,代码稍微改动下提交到Gitlab上

这时看到gitlab上有一个两个分支:master 和 v1

构建v1分支

构建成功

浏览器查看效果

四、Jenkins项目构建细节配置邮箱服务器发送构建结果

安装Email Extension插件

Jenkins设置邮箱相关参数

先打开邮箱的SMTP功能

Manage Jenkins->Configure System

进入界面进行设置

测试邮箱

准备邮件内容,切换提交分支master

在项目根目录编写email.html,并把文件推送到Gitlab

在创建的email.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>
        <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>

在直接的Jenkinsfile代码里增添邮件需要的代码

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

两个都需要进行Push上传

构建项目,进行邮件测试

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Jenkins和GitLab都是用于持续集成和交付的开源工具。Jenkins是一个用于持续交付的开源软件,它可以帮助开发人员将软件从开发到交付自动化。GitLab是一个开源代码托管平台,它可以帮助开发人员跟踪代码更改,并使用Git来管理项目。 ### 回答2: Jenkins 和 GitLab 是两种不同的工具,但可以进行连接以实现持续集成和持续交付(CI/CD)的工作流程。 Jenkins 是一个开源的自动化服务器工具,它可以用于构建、测试和部署软件项目。它提供了一个用户友好的界面,可用于创建和管理不同的构建作业。可以在 Jenkins 中创建一个用于监控代码版本控制系统的作业,以便在代码更改时触发构建过程。 GitLab 是一个基于 Git 的协作开发平台,提供了版本控制、团队合作和持续集成的功能。它可以使用 Webhooks 来实现与外部工具的集成。在 GitLab 中,我们可以将 Jenkins 作为持续集成的工具进行配置,以便在代码推送到 GitLab 仓库时自动触发 Jenkins 的构建作业。 要将 Jenkins 和 GitLab 连接起来,需要执行以下步骤: 1. 在 Jenkins 中安装 GitLab 插件。这个插件允许 Jenkins 监听 GitLab 的 Webhooks,并自动触发构建作业。 2. 在 GitLab 仓库中配置 Webhooks。要将 GitLab 与 Jenkins 连接,我们需要在 GitLab 项目的设置中添加 Jenkins 的 Webhook URL。这个 Webhook URL 是 Jenkins 提供的一个用于接收触发构建的地址。 3. 在 Jenkins 中创建构建作业。在 Jenkins 中创建一个与 GitLab 仓库相关联的构建作业。可以选择自动配置 Jenkins 作业以与 GitLab 仓库进行集成。 4. 配置 Jenkins 作业的触发器。在 Jenkins 作业的配置中,可以设置作业何时触发构建。选择 "GitLab Trigger" 作为触发器,并配置相关的触发条件和分支限制。 通过以上设置,当在 GitLab 仓库中进行代码推送时,GitLab 将向 Jenkins 发送 Webhook 请求,指示 Jenkins 触发构建作业。然后 Jenkins 将自动开始构建过程,执行各种构建操作,例如编译、测试和部署。 这种设置可以提高团队的协作效率,实现自动化的持续集成和部署流程,并确保代码变更的稳定性和可靠性。 ### 回答3: Jenkins和GitLab是两个常用的软件开发工具,它们可以通过不同的方式进行连接和集成。 Jenkins是一个流行的持续集成工具,用于自动化构建、测试和部署软件。它可以通过插件和扩展性来与其他工具进行集成,包括与GitLab的连接。通过Jenkins与GitLab连接,可以实现从代码提交到部署的一系列自动化流程。 在Jenkins中,我们可以通过以下步骤来连接和配置GitLab: 1. 首先,在Jenkins服务器上安装Git插件。这可以通过在Jenkins的插件管理页面中搜索并安装Git插件来完成。 2. 在Jenkins的管理页面中,配置全局Git的用户信息,包括用户名和电子邮件地址。这将用于在进行代码克隆和提交时的身份验证。 3. 在Jenkins的主页上,点击新建任务,然后选择自由风格软件项目。输入项目名称和描述,并配置其他相关参数。 4. 在源代码管理部分,选择Git,并填写GitLab仓库的URL。 5. 配置GitLab的凭据,以便Jenkins可以访问GitLab仓库。可以使用用户名和密码、SSH密钥或访问令牌等凭据方式进行身份验证。 6. 配置构建触发器,例如当GitLab仓库有新的提交时自动触发构建。 7. 配置构建步骤,例如代码构建、单元测试、代码质量检查等。 8. 配置构建后的操作,例如部署到服务器、发送通知等。 通过这样的配置,Jenkins可以与GitLab进行连接,并在代码提交到GitLab仓库时自动触发构建和部署流程。这样可以实现软件开发流程的自动化,提高开发团队的效率和项目的质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值