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