Lui*_*ais 1 jenkins jenkins-pipeline
我试图并行地多次调用一个函数,但不知道它会被调用多少次,这取决于列表中的值。代码示例:
def buildJob(jobName) {
echo "${jobName} will be built." //testing output before really building jobs
}
node {
projects = ['project1-dev', 'project2-dev', 'project1-qa', 'project2-qa', 'project1-pp', 'project2-pp']
stage ('Build') {
for (project in projects) {
parallel(
"${project}": buildJob(project), failFast: true
)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望代码生成这样的东西:
stage ('Build') {
parallel (
'project1-dev': { buildJob('project1-dev') },
'project1-qa': { buildJob('project1-qa') },
'project1-pp': { buildJob('project1-pp') },
...
)
}
Run Code Online (Sandbox Code Playgroud)
但是我真的不明白如何传递参数buildJob(project),我尝试了很多不同的方法,有时会出现failFast错误,有时会出现项目名称错误,有时无法完全识别地图。我什至制作了一个地图并动态添加了值,但我认为我过于复杂了,我只想多次调用该函数而不等待结果,除了等待每个调用完成。
请问有人可以帮忙吗?非常感谢!此致
经过几个小时的战斗,我是这样解决的:
def buildJob(jobName){
echo "${jobName} will be built."
}
node {
map = [:]
projects = ['project1-dev', 'project2-dev', 'project1-qa', 'project2-qa', 'project1-pp', 'project2-pp']
stage ('Build') {
for (project in projects) {
map[project] = { buildJob("'${project}'") }
}
parallel map
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2653 次 |
最近记录: |