Jenkins 构建在源码检出环节失败时,如何配置检出重试次数避免瞬时故障?
Jenkins 构建在源码检出环节失败时如何配置检出重试次数避免瞬时故障【免费下载链接】jenkinsJenkins automation server项目地址: https://gitcode.com/GitHub_Trending/je/jenkins构建在源码检出SCM checkout阶段失败常见诱因是瞬时问题网络抖动、代码仓库服务端短暂不可用、连接超时。Jenkins 的默认行为是不重试按 帮助文档 的说明当重试次数为0默认或未启用该选项时检出一旦失败构建会立即被标记为 failed。Jenkins 在两个层面提供了 “SCM checkout retry count”检出重试次数配置系统级默认值和项目级覆盖值。配置后检出失败时 Jenkins 会按配置次数重试每次重试之间延迟 10 秒瞬时故障可以在无人工干预的情况下自行恢复。这套机制适用于已配置源码管理系统的构建项目。重试次数为 0 时的默认行为默认配置或显式配置为0下构建在检出失败时立刻终止并标记为 failed不会有任何等待或重试。需要注意一条边界文档明确指出插件可以提供不同的源码管理实现“什么算一次检出失败”由各 SCM 实现自行定义。因此哪些具体错误连接超时、鉴权失败、仓库 5xx 等会触发重试取决于你使用的 SCM 插件对失败的处理方式Jenkins 核心只负责“失败后按配置重试”这个循环。配置全局默认重试次数全局默认值在Configure System系统配置页面上设置页面中有一个标题为SCM checkout retry count的数字字段。表单字段名为scmCheckoutRetryCount取值范围最小为0、步进为1见 config.jelly。这个配置项由 GlobalSCMRetryCountConfiguration 提供它是一个全局配置扩展提交时把值写入 Jenkins 实例源码注释说明这是为了兼容性值实际存储在全局配置上。查看和修改该页面需要Jenkins.MANAGE权限即具备 Jenkins 系统管理权限的用户才能修改全局默认值。保存后所有未单独设置项目级重试次数的构建项目都会使用这个全局值。按项目覆盖重试次数如果你只想让某个项目使用不同于全局的重试次数可以在该项目上单独设置打开该项目的Configure配置页面在高级选项区域中找到Retry Count重试次数选项块勾选它在SCM checkout retry count数字输入框中填入次数同样是最小0、步进1见 config-retryCount.jelly。测试用例 ProjectTest.testGetScmCheckoutRetryCount 演示了这条完整操作路径先点击高级选项按钮展开该区域勾选hasCustomScmCheckoutRetryCount把scmCheckoutRetryCount设为7后提交表单再断言项目的生效值已变为7。生效值的解析逻辑在 AbstractProject.getScmCheckoutRetryCount()项目上设置了自定义值就用项目值否则回退到 Jenkins 全局值。换句话说“Retry Count”选项不勾选时项目跟随Configure System页面的系统级默认值——这一点帮助文档和实现代码的结论一致。验证配置是否生效验证分为两步确认构建确实进入了重试循环以及确认重试带来了预期结果。构建运行期间的检出逻辑在 AbstractBuild.defaultCheckout() 的循环中关键片段摘录如下for (int retryCount project.getScmCheckoutRetryCount(); ; retryCount--) { ... if (retryCount 0) // all attempts failed throw new RunnerAbortedException(); listener.getLogger().println(Retrying after 10 seconds); Thread.sleep(10000); }据此可以判断构建日志中的三种情况日志出现Retrying after 10 seconds说明重试机制已生效当前失败被当作瞬时故障处理Jenkins 等待 10 秒后再次尝试检出。重试后检出成功构建继续正常执行不需要人工重新触发。这是该配置要避免瞬时故障的目标结果。最后一次尝试仍然失败构建被标记为 failed执行停止对应上面的RunnerAbortedException帮助文档的表述是 “the build will be marked as failed, and execution will stop”。也就是说重试次数只影响“失败前会再尝试多少次”不能掩盖持续性故障——权限、地址配置错误这类每次都会失败的错误重试到次数用尽后构建依然失败。每次失败尝试的异常信息都会打印到构建日志中对应源码里对IOException的Functions.printStackTrace(e, ...)处理排查时结合这些堆栈可以判断失败是瞬时的还是持续的。边界说明该选项只对已配置 SCM 的项目生效帮助文档的原话是 “When this option is checked, and this project is configured to use a Source Code Management system”。“检出失败”的判定由具体 SCM 插件实现定义Jenkins 核心不预设哪些错误算失败。项目级 “Retry Count” 勾选后覆盖全局值不勾选时始终跟随全局值。把全局值调大而个别项目需要更快失败次数设0时就在该项目上勾选 “Retry Count” 并填0即可让该项目脱离全局默认。【免费下载链接】jenkinsJenkins automation server项目地址: https://gitcode.com/GitHub_Trending/je/jenkins创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于STM32F103的空气净化器设计:原理图、PCB与固件全流程

基于STM32F103的空气净化器设计:原理图、PCB与固件全流程

简介:基于STM32F103的空气净化器硬件与软件一体化设计工程,使用Altium Designer 09完成原理图与PCB布局,适用于物联网设备开发、嵌入式系统学习及环境监测类项目实践。工程包含160个文件,压缩包4.61MB,其中c/h源码涵盖…

2026/9/13 16:01:34 阅读更多 →
BOSS直聘数据分析师职位:Scrapy爬虫到机器学习薪资预测全链路实践

BOSS直聘数据分析师职位:Scrapy爬虫到机器学习薪资预测全链路实践

简介:面向高校期末大作业与毕业设计场景的完整项目包,围绕BOSS直聘“数据分析师”岗位,覆盖爬虫采集、数据清洗与分析、可视化看板、机器学习建模预测及结果解读等全流程。代码注释详细,按爬虫、分析与可视化、机器学习划分模块&a…

2026/9/13 16:00:33 阅读更多 →
knowledge-work-plugins 企业搜索插件连接器(Connectors)完全指南:`~~category` 占位符机制与 MCP 源接入

knowledge-work-plugins 企业搜索插件连接器(Connectors)完全指南:`~~category` 占位符机制与 MCP 源接入

knowledge-work-plugins 企业搜索插件连接器(Connectors)完全指南:~~category 占位符机制与 MCP 源接入 【免费下载链接】knowledge-work-plugins Open source repository of plugins primarily intended for knowledge workers to use in Cl…

2026/9/13 16:00:33 阅读更多 →

最新新闻

提示词工程的自动化微调:基于用户负反馈的Prompt迭代流

提示词工程的自动化微调:基于用户负反馈的Prompt迭代流

提示词工程的自动化微调:基于用户负反馈的Prompt迭代流在很多接入大语言模型(LLM)的产品中,开发者调试 Prompt 往往全凭“开发者自己的主观直觉”: 开发者写好了一版 Prompt,自己在本地测试了两条数据觉得“…

2026/9/13 16:55:56 阅读更多 →
计算机的“算”到底怎么发生的?从万物皆加法说起

计算机的“算”到底怎么发生的?从万物皆加法说起

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 16:55:56 阅读更多 →
国产多模检索数据库实战选型:PolarDB、veDB-Search、TDSQL Nexa、OceanBase四维对比

国产多模检索数据库实战选型:PolarDB、veDB-Search、TDSQL Nexa、OceanBase四维对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 16:55:56 阅读更多 →
本地PHP开发环境搭建指南:phpstudy从安装到建站与排查

本地PHP开发环境搭建指南:phpstudy从安装到建站与排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 16:55:56 阅读更多 →
大模型训练显存优化全攻略:混合精度、梯度检查点与LoRA实战

大模型训练显存优化全攻略:混合精度、梯度检查点与LoRA实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 16:55:56 阅读更多 →
Java日志安全:防止敏感信息泄露的实践指南

Java日志安全:防止敏感信息泄露的实践指南

1. 为什么Java日志泄露如此普遍? Java应用中的日志泄露问题之所以普遍存在,根本原因在于开发过程中对日志功能的滥用和错误认知。根据OWASP的统计,超过60%的Java应用在生产环境中存在敏感信息泄露风险,而其中90%的案例与日志记录不…

2026/9/13 16:54:56 阅读更多 →

日新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/13 16:51:11 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/12 18:29:34 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/12 19:02:44 阅读更多 →