当前位置: 首页 > news >正文

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

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、测试机器上验证代码是否自动下发

前端验证 

相关文章:

  • DETR详解
  • 基于SpringBoot实现旅游酒店平台功能六
  • 【C#学习笔记02】基本元素与数据类型
  • mac本地部署Qwq-32b记录
  • 供应链工作效率如何提升
  • Java常见面试技术点整理讲解——后端框架(整理中,未完成)
  • 什么是一致性模型,在实践中如何选择?
  • 程序化广告行业(3/89):深度剖析行业知识与数据处理实践
  • MOM成功实施分享(七)电力电容制造MOM工艺分析与解决方案(第二部分)
  • 菜鸟打印机组件安装后重启显示“Windows 找不到文件‘CNPrintClient,exe‘。请确定文件名是否正确后,再试一次。”的正确解决方案
  • JavaScript性能优化:DOM操作优化实战
  • 2025-03-10 吴恩达机器学习1——机器学习概述
  • Python的函数
  • OpenPLC WebSever启动
  • kali linux 漏洞扫描
  • 关于原码、反码、补码、移码
  • 【亲测可行】rk3588交叉编译opencv-4.5.1,ffmpeg-4.2.9,x264
  • Hugging Face的Transformers核心模块:Pipelines(参数说明,各种模型类型调用案例)
  • TypeScript基础类型详解:与JavaScript的对比与核心价值
  • 【Android】03-Android 开发机器配置要求
  • 前列腺癌真的难以早发现吗?如何治疗?专家回应
  • “80后”湖南岳阳临湘市市长刘琦任临湘市委书记
  • 中纪报:强化监督推动过紧日子要求落到实处
  • 两次通话、三点诉求,泽连斯基对美称愿与俄签署和平备忘录
  • 网络直播间销售玩具盲盒被指侵权,法院以侵犯著作权罪追责
  • 国家统计局:4月份各线城市商品住宅销售价格环比持平或略降