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

如何让Jenkins任务B按顺序用不同参数多次执行任务A

实现Jenkins任务B按顺序执行任务A的所有参数值

推荐使用Jenkins Pipeline来实现这个需求,灵活性高且易于维护,具体步骤如下:

步骤1:创建任务B

新建一个Pipeline类型的Jenkins任务(任务B)。

步骤2:编写Pipeline脚本

在任务B的Pipeline配置中,使用以下脚本,它会遍历foo的所有允许取值,依次调用任务A并等待每次执行完成:

pipeline {
    agent any
    stages {
        stage('依次执行任务A') {
            steps {
                script {
                    // 定义foo的所有目标取值
                    def fooValues = [1, 2, 3, 4, 5, 6, 7]
                    // 遍历每个值,按顺序触发任务A
                    fooValues.each { currentValue ->
                        echo "准备执行任务A,参数foo=${currentValue}"
                        // 调用任务A,传入对应参数,wait: true确保串行执行
                        build job: '任务A', 
                              parameters: [string(name: 'foo', value: "${currentValue}")],
                              wait: true
                    }
                }
            }
        }
    }
}

脚本说明

  • wait: true:强制任务B等待当前任务A执行完成后,再触发下一次调用,保证严格的顺序执行。
  • 参数类型适配:如果任务A的foo参数是数字类型,将string(name: 'foo', value: "${currentValue}")替换为number(name: 'foo', value: currentValue)即可。

可选:错误处理(按需添加)

如果希望某次任务A执行失败后停止后续循环,可添加try-catch逻辑:

fooValues.each { currentValue ->
    try {
        echo "准备执行任务A,参数foo=${currentValue}"
        build job: '任务A', 
              parameters: [string(name: 'foo', value: "${currentValue}")],
              wait: true
    } catch (Exception e) {
        echo "任务A执行foo=${currentValue}时失败:${e.getMessage()}"
        error("终止后续执行,因为任务A执行失败")
    }
}

注意事项

  • 确保任务B拥有调用任务A的权限(在任务A的权限配置中允许任务B触发)。
  • 任务A的foo参数需正确配置,允许接收脚本中指定的数值范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:35:33