CI/CD—Jenkins配置Poll SCM触发自动构建

server/2025/3/11 10:08:50/

Poll SCM简介

在 Jenkins 等持续集成工具中,“Poll SCM” 是一种用于轮询软件配置管理(SCM)系统以检查代码变更的机制,以下是对它的详细介绍:

作用

  • “Poll SCM” 允许 Jenkins 定期检查指定的 SCM 系统(如 Git、Subversion 等),查看是否有新的代码提交或其他变更。如果检测到有变更,Jenkins 就会触发相应的构建任务,确保项目能够及时基于最新的代码进行构建和测试等操作,从而实现持续集成的自动化流程。

工作原理

  • Jenkins 按照用户在 “Poll SCM” 字段中配置的定时规则,周期性地向 SCM 系统发送请求,询问是否有新的变更。例如,配置为*/5 * * * *,则表示 Jenkins 每 5 分钟会检查一次 SCM 系统。当 SCM 系统响应请求并返回有变更的信息时,Jenkins 会根据预先设定的构建配置,启动构建过程,拉取最新代码,执行编译、测试等一系列任务。

配置方式

  • 在 Jenkins 的项目配置页面中,通常可以找到 “Poll SCM” 的配置项,用户需要在此处输入类似于 Cron 表达式的定时规则,来指定检查 SCM 系统的频率。如H/10 * * * *表示每隔 10 分钟左右随机在某个时间点检查一次 SCM,以更均匀地分散系统负载。除了基本的定时规则,还可以根据具体的 SCM 系统和项目需求,配置额外的参数,如指定要检查的特定分支、标签等。

与其他触发方式对比

  • 与 Webhook 触发对比:Webhook 是 SCM 系统在有代码变更时主动向 Jenkins 发送通知,触发构建。而 “Poll SCM” 是 Jenkins 主动去 SCM 系统检查变更。Webhook 的实时性更好,能在变更发生后立即触发构建,但可能需要在 SCM 系统和 Jenkins 之间进行额外的配置和网络设置。“Poll SCM” 相对简单,不需要 SCM 系统主动推送,但可能存在一定的延迟,不能及时检测到变更。
  • 与定时构建对比:定时构建是按照固定的时间间隔无条件地执行构建任务,而不管代码是否有变更。“Poll SCM” 则是在定时的基础上,检查 SCM 系统是否有变更才触发构建,更加智能,能避免不必要的构建任务,节省系统资源。

一、配置Poll SCM触发构建

步骤一:进入项目配置页面

登录 Jenkins 控制台,在项目列表中找到要配置的项目,点击项目名称进入项目主页。
在项目主页的左侧菜单中,点击 “配置” 选项,进入项目配置页面。


步骤二:找到 “构建触发器” 部分

在项目配置页面中,向下滚动找到 “构建触发器” 部分。


步骤三:启用 “Poll SCM”

在 “构建触发器” 部分,勾选 “Poll SCM” 选项。勾选后会出现一个文本框,用于输入轮询的时间规则。


步骤四:配置轮询时间规则

因为在本实验中测试需要配置成每分钟一次检查一次

* * * * *

步骤五:保存配置

输入完轮询时间规则后,向下滚动页面,点击 “保存” 按钮,保存项目配置。
验证配置

 

注意事项:

    在实际的开发环境中选择分支时最好是选择主分支,因为每个版本都需要合并代码,如果配置成主分支以外的分支可能会频繁的触发自动构建的条件,对系统资源造成浪费,同时也会导致测试环境的不稳定。

二、合并代码触发配置

1、修改代码

2、提交代码

3、合并代码

4、Jenkins上查看是否触发Jenkins自动构建

已经自动触发构建

5、测试机器上验证代码是否自动下发

前端验证 


http://www.ppmy.cn/server/174153.html

相关文章

[傻瓜式教学]如何将MathType公式编辑器内嵌到WPS工具栏中

[傻瓜式教学]如何将MathType公式编辑器内嵌到WPS工具栏中 将MathType公式编辑器内嵌到WPS工具栏中 下载好所需文件 我用夸克网盘分享了「mathtype安装教程超简单易上手.zip」,点击链接即可保存。打开「夸克APP」 链接:https://pan.quark.cn/s/4726c684…

Hcaptcha验证码自动识别方案详解

Hcaptcha验证系统简介 这个令人头疼的验证系统长这样: 还有这样: 看着就让人不开心,每次都要玩这种小游戏。 工作原理 1. 环境评估(形式主义阶段) 它会检查这些东西: 浏览器指纹行为数据IP地址网站设置 如果你看起来像个"正常访客",它可能就放你过。但要是发现…

表格columns拼接两个后端返回的字段(以umi框架为例)

在用组件对前端项目进行开发时,我们会遇到以下情况:项目原型中有取值范围这个表字段,需要存放最小取值到最大取值。 而后端返回给我们的数据是返回了一个最小值和一个最大值, 在columns中我们需要对这两个字段进行拼接&#xff0…

商城类APP/小程序定制开发解决方案

我们提供七大主流电商模式的技术实现与商业赋能: 1. 社交拼团系统 创新裂变式营销引擎,支持阶梯拼团/限时秒杀/团长激励,实现用户指数级增长 2. 三级分销体系 合规化多级分润机制,集成智能返佣计算与税务风控系统,助…

C++基础算法:高精度

文章目录 1.[P1601 AB Problem(高精)](https://www.luogu.com.cn/problem/P1601)题目解析:算法原理:代码实现 2.[P2142 高精度减法 - 洛谷](https://www.luogu.com.cn/problem/P2142)算法原理代码实现 3.[P1303 A*B Problem - 洛谷…

基于磁数据的伤痕、生锈、断丝分类训练平台搭建规划

基于磁数据的伤痕、生锈、断丝分类训练平台搭建规划 一、项目概述 本项目旨在搭建一个训练平台,通过磁数据以及震荡变化来识别物体表面的伤痕、生锈和断丝情况。平台将涵盖数据标记、算法设计、模型调优以及模型交付等一系列功能。 二、平台搭建步骤 (一…

机器学习模型-从线性回归到神经网络

在当今的数据驱动世界中,机器学习模型是许多应用程序的核心。无论是推荐系统、图像识别,还是自动驾驶汽车,机器学习技术都在背后发挥着重要作用。在这篇文章中,我们将探索几种基础的机器学习模型,并了解它们的基本原理…

MySQL基本建表操作

一、创建数据库db_ck和表db_hero 1、创建表 mysql> create database db_ck default charset"utf8mb4";mysql> create table if not exists db_hero(-> id int not null,-> name varchar(100) not null,-> nickname varchar(100),-> age int,->…