gpt4 book ai didi

jenkins - 如何在 Jenkinsfile 中定义和迭代 map

转载 作者:行者123 更新时间:2023-12-04 09:34:29 32 4
gpt4 key购买 nike

我对 groovy 的了解并没有超出我对 Jenkinsfiles 的了解。我试图弄清楚是否有可能在 Jenkinsfile 中定义一个 map ,然后可以以“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 中每个配对的舞台?我的尝试没有任何运气。

最佳答案

还有一些类似的user-submitted examples在 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]
}
}

关于jenkins - 如何在 Jenkinsfile 中定义和迭代 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42770775/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com