在每个循环Jenkinsfile中的两个列表中同时传递项目

我有一个列表foo = ['tea',''sugar','milk']col =

['black','white','pink']我想做的是嵌套循环

def foo = ['tea','sugar','milk']

def col = ['black','white','pink']

[foo, col].transpose().each { x, y ->

sh """aws deploy push --application-name "${x}" --source "${y}" """

}

所需结果

--application-name "tea" --source "black" 

--application-name "sugar" --source "white"

--application-name "milk" --source "pink"

我得到的结果

[Pipeline] script

[Pipeline] {

[Pipeline] echo

--application-name "[tea, black]" --source "null"

[Pipeline] echo

--application-name "[sugar, white]" --source "null"

[Pipeline] echo

--application-name "[milk, pink]" --source "null"

[Pipeline] }

[Pipeline] // script

[Pipeline] }

我希望将 和 的列表项一一注入到上面的shell脚本中。有没有一种方法可以将两个列表项一次传递到上面的shell脚本中?

我们可以做点什么 (foo,col).each

或使用for循环 for(x in foo && y in col)

引用我的Jenkinsfile

pipeline {

agent any

stages {

stage('hello'){

steps{

script{

def foo = ['tea','sugar','milk']

def col = ['black','white','pink']

[foo, col].transpose().each { x, y ->

sh """aws deploy push --application-name "${x}" --source "${y}" """

//echo """--application-name \"${x}\" --source \"${y}\" """

}

}

}

}

}}

回答:

我相信转置是您要使用的方法,将两个列表配对,然后可以遍历结果:

[foo, col].transpose().each { x, y ->

...

}

这就是我的目标。请注意,为简洁起见,删除了一些参数

def foo = ['tea','sugar','milk']

def col = ['black','white','pink']

[foo, col].transpose().each { x, y ->

println """--application-name "${x}" --source "${y}" """

}

结果

--application-name "tea" --source "black" 

--application-name "sugar" --source "white"

--application-name "milk" --source "pink"

以上是 在每个循环Jenkinsfile中的两个列表中同时传递项目 的全部内容, 来源链接: utcz.com/qa/416626.html

回到顶部