gpt4 book ai didi

groovy - 如何在循环中以字符串形式访问 Jenkinsfile 参数值

转载 作者:行者123 更新时间:2023-12-02 08:47:13 30 4
gpt4 key购买 nike

在我们的 Jenkinsfile 中,我们有很多参数(参数化构建),在这种情况下,我想检查每个参数是否已切换并对其进行操作。这些参数具有相似的名称,但以不同的小数结尾,因此我想迭代它们以实现此目的。

我有类似的东西:

if ("${TEST_00}" == "true") { testTasksToRun.add(testsList[0]) }
if ("${TEST_01}" == "true") { testTasksToRun.add(testsList[1]) }
if ("${TEST_02}" == "true") { testTasksToRun.add(testsList[2]) }
if ("${TEST_03}" == "true") { testTasksToRun.add(testsList[3]) }
if ("${TEST_04}" == "true") { testTasksToRun.add(testsList[4]) }
if ("${TEST_05}" == "true") { testTasksToRun.add(testsList[5]) }

但我想要这样的东西:

for(int i=0; i<testsList.size(); i++) {
if ("${TEST_0${i}}" == "true") {
testTasksToRun.add(testsList[i])
}
}

我尝试寻找解决方案并在 GroovyConsole 上进行实验,但没有成功。看起来好像和“绑定(bind)”有关,但我对此不太熟悉。

最佳答案

params 是一个 GlobalVariable,访问时返回一个不可修改的映射。可以看到实现here .

因为它返回一个Map,所以您可以使用与普通 Groovy 映射相同的策略来迭代它。

params.each { key, value ->
// do things
}
for (entry in params) {
// entry.key or entry.value
}

Groovy CPS 库的较新版本应该可以处理自 JENKINS-26481 以来的大多数迭代情况。已解决。

关于groovy - 如何在循环中以字符串形式访问 Jenkinsfile 参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49668313/

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