如何解决如何在Jenkinsfile中定义和迭代地图
Jenkins文档中有一些类似的用户提交的示例。
这样的事情应该起作用:
def data = [
"k1": "v1",
"k2": "v2",
"k3": "v3",
]
// Create a compile job for each item in `data`
work = [:]
for (kv in mapToList(data)) {
work[kv[0]] = createCompileJob(kv[0], kv[1])
}
// Execute each compile job in parallel
parallel work
def createCompileJob(k, v) {
return {
stage("Build image ${k}") {
// Allocate a node and workspace
node {
// withCredentials, etc.
echo "sh make build KEY=${k} VALUE='${v}'"
}
}
}
}
// required due to JENKINS-27421
@Noncps
List<List<?>> mapToList(Map map) {
return map.collect { it ->
[it.key, it.value]
}
}
解决方法
我对groovy的了解并没有超出我对Jenkinsfiles的了解。我试图弄清楚是否有可能在Jenkinsfile中定义一个映射,然后可以以“
for循环”方式应用该映射。
我有这些变量:
mymap = {
"k1": "v1"
"k2": "v2"
"k3": "v3"
}
stage
我的Jenkinsfile中有一个如下所示的:
stage('Build Image') {
withCredentials([[<the credentials>]) {
sh "make build KEY={k1,k2,k3} VALUE='{v1,v2,v3}'"
}
有没有办法Build Image
为每个配对做一个舞台mymap
?我的尝试还没有运气。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。