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

如何通过Jenkins声明式流水线调度目标任务在特定时间运行

Jenkins声明式流水线定时触发带参任务的正确姿势

问题还原

你当前的流水线配置如下:

pipeline {
    agent any
    triggers {
        cron('H 6 8 * *')
    }
    stages {
        stage('Remove old AMIs from account 1') {
            steps {
                script {
                    b = build(job: 'another job',
                    parameters: [string(name: 'ACCOUNT', value: 'account1')])
                    // some other parameters
                }
            }
        }
        stage('Remove old AMIs from account 2')
        // ... removed for brevity
    }
}

这个配置的问题是:手动启动主流水线时会立即触发another job,每月8日6点左右也会触发主流水线,进而执行所有stage触发目标任务。但你需要的是仅让another job在特定时间按指定参数运行,主流水线无需被定时触发或手动启动时立即执行。

解决方案

方案1:直接给目标任务配置定时+参数化

这是最直接的方式,不需要依赖主流水线:

  • 进入another job的配置页面,开启参数化构建过程,添加ACCOUNT等所需参数;
  • 添加定时触发器(Cron),设置调度规则(比如H 6 8 * *)。如果需要给不同账号分别定时,可使用Parameterized Scheduler插件,支持在单个定时规则里传递不同参数,或者创建多个定时规则对应不同参数值。

方案2:改造主流水线,仅定时触发时执行build

如果必须通过主流水线来触发,可通过条件判断限制执行时机:

pipeline {
    agent any
    triggers {
        cron('H 6 8 * *')
    }
    stages {
        stage('Remove old AMIs from account 1') {
            // 仅当定时触发时才执行此stage
            when {
                triggeredBy 'TimerTrigger'
            }
            steps {
                script {
                    build(job: 'another job',
                          parameters: [string(name: 'ACCOUNT', value: 'account1')])
                    // 其他参数配置
                }
            }
        }
        stage('Remove old AMIs from account 2') {
            when {
                triggeredBy 'TimerTrigger'
            }
            steps {
                // 账号2对应的build逻辑
            }
        }
    }
}

这样手动启动主流水线时,所有stage会因为不满足triggeredBy 'TimerTrigger'条件而跳过,只有定时触发时才会执行build步骤,触发目标任务。

关于你的疑问

build步骤里不能配置triggers参数,build的作用是立即触发指定任务,它没有定时触发相关的配置项。定时触发的逻辑只能在任务自身的触发器配置中设置,或者通过主流水线的定时+条件判断来间接实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:13:17