2017-07-20 109 views
0

我需要執行primary-job Jenkin的作業具有不同的參數。如何使用不同參數運行Jenkins的許多運行?

爲此,我創建了單獨的作業execute-jobBuild flow plugin

DSL腳本使用Groovy的樣子:

// #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

該腳本是用Groovy編寫的,因此您應該可以使用它來編寫腳本。

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

很好的解決方案。你連續運行3個不同的工作。但是,我需要運行同一個。並且每次下一次運行時都應該更改參數。 –

+0

另外,對於只是正在運行的工作,沒有任何下一個用法,您可以省略聲明並使用'build(jobname)'而不是'b = build(jobname)'。 –

+0

以上只是一個例子。我接收3個參數並在循環中使用它們。學習一些Groovy,你應該能夠找出你需要的東西。 –

相關問題