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

如何在Jenkins Pipeline任务中全局配置多个超时规则?

Jenkins 双超时规则全局配置方案

Jenkins 声明式流水线的 options 块中 timeout 属于单例配置项,重复声明会触发语法错误或配置覆盖,无法直接实现双规则配置。要实现「2分钟无活动触发超时、10分钟总时长兜底终止」的全局效果,可通过流水线wrappers全局包装器实现,无需改动原有业务阶段逻辑:

单流水线全局生效配置

直接在pipeline根层级添加wrappers块,按顺序配置两层超时规则,配置会自动包裹所有流水线阶段、步骤全局生效:

pipeline {
    agent any
    // 移除options块中原有的timeout配置,避免规则冲突
    wrappers {
        // 最外层:绝对总时长超时,流水线启动即开始计时,满10分钟直接终止,作为兜底规则
        timeout(time: 10, unit: 'MINUTES')
        // 内层:无活动超时,包裹范围内连续2分钟无日志输出则触发终止
        timeout(activity: true, time: 2, unit: 'MINUTES')
    }
    stages {
        // 原有业务stage保持原有写法即可,无需额外修改
        stage('Build') {
            steps {
                echo '执行构建逻辑...'
            }
        }
        stage('Test') {
            steps {
                echo '执行测试逻辑...'
            }
        }
    }
}

配置注意事项

  • 两个超时规则的声明顺序不能调换:必须将固定总时长的绝对超时写在wrappers块的最靠前位置(最外层),无活动超时写在靠后位置(内层),否则外层的无活动超时触发后会直接终止构建,总时长兜底规则会失效。
  • 配置完成后不需要在每个业务stage单独加超时规则,两层超时逻辑会对整个流水线的所有执行步骤生效。
  • 如果需要让Jenkins实例下所有流水线默认应用这套双超时规则,可以将上述wrappers配置封装到Jenkins共享库的全局流水线模板中,业务流水线直接引用模板即可,无需重复编写配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 03:18:16