如何针对多次运行使用不同参数运行Jenkins作业?

时间:2017-07-20 09:16:16

标签: jenkins groovy jenkins-plugins dsl

我需要用不同的参数执行primary-job Jenkin的工作。

为此,我使用Build flow plugin创建了单独的作业execute-job

使用Groovy的

DSL 脚本如下所示:

// #1 - Build cluster
ignore(FAILURE) {
    b = build("primary-job",
            "KILL_CLUSTER": "true",
            "BUILD_CLUSTER": "true",

            "CALLS_RATE": "50",
            "MAX_SIMULT_CALLS": "400",
            "LOCAL_CODEC": "PCMU",
            "REMOTE_CODEC": "PCMU",
            "NUM_LOOPS": "4",
            "VOICE_TRACE": "0",
            "MAX_LOSS_PERCENT": "1",
            "NUM_RUNS": "3",

            "RECORD": "true",
            "NUM_CHANNELS": "1"
    )
}
// #2
ignore(FAILURE) {
    b = build("primary-job",
            "BUILD_CLUSTER": "false",

            "CALLS_RATE": "50",
            "MAX_SIMULT_CALLS": "400",
            "LOCAL_CODEC": "PCMU",
            "REMOTE_CODEC": "PCMU",
            "NUM_LOOPS": "4",
            "VOICE_TRACE": "0",
            "MAX_LOSS_PERCENT": "1",
            "NUM_RUNS": "3",

            "RECORD": "true",
            "NUM_CHANNELS": "2"
    )
}
.....

Abowe你只能看到2次跑步。

但是,我需要将这样的工作触发 ~320 次。

即使一项工作失败,我们也必须运行下一项工作。

我相信我无法手动输入DSL脚本这么长的构建执行列表。太长了。

我找不到任何解决此任务的方法。

如何多次使用不同参数调用另一个Jenkins作业?

1 个答案:

答案 0 :(得分:1)

该脚本是用Groovy编写的,因此您应该可以使用它来编写脚本。

[ "job1", "job2", "job3" ].each { jobname ->
   ignore(FAILURE) {
      b = build( jobname)
   }
}