2017-03-16 86 views

回答

9

使用允許比聲明性語法更具靈活性的腳本語法,即使聲明性更多地記錄和推薦。

階段,例如可以在一個循環中創建:

def tests = params.Tests.split(',') 
for (int i = 0; i < tests.length; i++) { 
    stage("Test ${testd[i]}") { 
     sh '....' 
    } 
} 
1

我使用它來生成我的階段,該階段包含他們詹金斯工作。 build_list是我想要從主Jenkins作業中觸發的Jenkins作業的列表,但每個作業都有一個觸發階段。

build_list = ['job1', 'job2', 'job3'] 
     for(int i=0; i < build_list.size(); i++) { 
      stage(build_list[i]){ 
       build job: build_list[i], propagate: false 
      } 
     } 
1

你可能想看看this example - 你可以有一個函數返回一個閉合件應該能夠有一個階段吧。

此代碼顯示的概念,但沒有階段。

def transformDeployBuildStep(OS) { 
    return { 
     node ('master') { 
     wrap([$class: 'TimestamperBuildWrapper']) { 
... 
     } } // ts/node 
    } // closure 
} // transformDeployBuildStep 

stage("Yum Deploy") { 
    stepsForParallel = [:] 
    for (int i = 0; i < TargetOSs.size(); i++) { 
     def s = TargetOSs.get(i) 
     def stepName = "CentOS ${s} Deployment" 
     stepsForParallel[stepName] = transformDeployBuildStep(s) 
    } 
    stepsForParallel['failFast'] = false 
    parallel stepsForParallel 
} // stage 
相關問題