【发布时间】:2026-01-20 14:45:02
【问题描述】:
我正在编写一个 jenkins 管道,它混合了声明式和脚本式语法。我想循环 4 次以在管道中创建 4 个并行阶段。我想捕捉我正在进行的循环,并在每一步开始时打印出来:
def parallelStages = [:]
int cypressRunners = 4
for (int i = 1; i <= cypressRunners; i++) {
parallelStages["Cypress ${i}"] = {
stage("Cypress ${i}") {
node("cypress-runner-agent") {
echo "------------------ Cypress ${i} Stage ------------------"
// more steps
}
}
}
}
在詹金斯日志中,我总是得到一个打印输出
------------------ Runner 5 Stage ------------------
即使在左侧列出了舞台名称,我也得到了正确索引的名称Cypress 1、Cypress 2、Cypress 3、Cypress 4,如下所示:
我不是 java 或 groovy 开发人员,但这似乎是任何语言中的一个非常简单的 for 循环。我在这里缺少异步或闭包的某些方面吗?存在大量关于 for 循环无法按预期工作的问题,但在 jenkins-groovy-pipeline 上下文中没有问题,当然也不适用于这种情况。
【问题讨论】:
标签: for-loop jenkins jenkins-groovy jenkins-declarative-pipeline