2017-03-16 62 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 
相关问题