You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins流水线执行前添加重试机制的可行性咨询

解决Jenkins拉取流水线代码阶段的重试问题

因为问题出在加载Jenkinsfile之前的SCM拉取阶段,流水线内部的retry等机制确实无效,以下是直接可行的解决方案:

方案1:给Pipeline Job的SCM拉取添加重试行为

直接在你的Pipeline任务配置里配置拉取重试:

  • 进入Pipeline Job的配置页面,找到Pipeline区域,确保Definition选择的是Pipeline script from SCM
  • 展开SCM配置的Additional Behaviours,点击Add选择Retry checkout
  • 设置参数:
    • Number of retry attempts:填写需要重试的次数(比如3)
    • Time between retries (in minutes):填写间隔时长(比如5)
      这个配置会让Jenkins在拉取Jenkinsfile的阶段自动重试,直到成功或耗尽重试次数。

方案2:用Freestyle Job做前置重试包装

如果你的Jenkins版本没有SCM重试行为选项,可以用一个Freestyle任务作为触发入口:

  • 创建一个Freestyle Job,配置Git拉取你的流水线代码仓库,同样在SCM的Additional Behaviours里添加Retry checkout并设置好重试参数
  • 添加构建步骤,执行简单的验证(比如检查Jenkinsfile是否存在)
  • 添加构建后操作:选择Trigger/call builds on other projects,指定你的实际Pipeline Job
  • 以后所有触发都通过这个Freestyle Job发起,只有当它成功拉取代码后,才会触发Pipeline;拉取失败时会自动重试。

方案3:全局配置Git拉取重试(批量生效)

如果有多个Pipeline Job需要处理,可以全局统一设置:

  • 进入Manage Jenkins -> Configure System
  • 找到Git区域,点击Add选择Retry checkout
  • 设置重试次数和间隔,所有使用Git作为SCM的任务(包括拉取Jenkinsfile的阶段)都会自动应用这个重试逻辑。

内容的提问来源于stack exchange,提问作者Artur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 09:13:26