我目前正在使用Build Flow插件,该插件似乎已被 Jenkins 2.0 中的 Pipelines 所取代。
使用新管道重新构建我们现有的工作时遇到了一些问题。
目前,我有类似这样的代码:
ignore(FAILURE) {
join = parallel([
job1: {build('job1')},
job2: {build('job2')},
job3: {build('job3')}
])
}
results = [join.job1.result.toString(), join.job2.result.toString(), join.job2.result.toString()]
if(join.job1.result.toString() == 'SUCCESS') {
buildList << join.job1.lastBuild.getDisplayName()
}
这里的目标是并行运行多个现有作业,然后访问有关已完成构建的信息。这在 Build Flow 插件中一直没有问题。
我一直找不到使用新管道访问这些数据的方法。
echo 'Checking streams for latest builds'
join = [:]
join['Job1'] = { build job: 'Job1', parameters: [[$class: 'StringParameterValue', name: 'TimeWindow', value: '1200']], propagate: false}
join['Job2'] = { build job: 'Job2', parameters: [[$class: 'StringParameterValue', name: 'TimeWindow', value: '1200']], propagate: false}
join['Job3'] = { build job: 'Job3', parameters: [[$class: 'StringParameterValue', name: 'TimeWindow', value: '1200']], propagate: false}
parallel join
join['Job1'] 的转储不会像 Build Flow 插件那样提供对 AbstractBuild 或类似的访问权限。相反,它显示:
<org.jenkinsci.plugins.workflow.cps.CpsClosure2@2eac6ed9
def=com.cloudbees.groovy.cps.impl.CpsClosureDef@59647704
delegate=WorkflowScript@3aa1807f
owner=WorkflowScript@3aa1807f
thisObject=WorkflowScript@3aa1807f
resolveStrategy=0
directive=0
parameterTypes=null
maximumNumberOfParameters=0
bcw=null>
使用新的管道,有没有办法访问像 job1.result、job1.lastBuild、job1.lastBuild.getDisplayName() 这样的数据?