当前位置: 首页 > 知识库问答 >
问题:

来自loop的Jenkins并行作业

呼延才
2023-03-14

我正在尝试动态生成阶段以并行运行,但面临下一个错误:

WorkflowScript:59:第59行第5列的阶段“主”应为“步骤”、“阶段”或“平行”之一。阶段('main'){^

这是詹金斯管道:

def tasks = [:]

pipeline {
  agent any
  stages {
    stage('pre') {
      steps {
        script {
            for (cl in env.CLUSTERS.split()) {
              tasks["${cl}"] = {
                stage ("${cl}") {
                  steps {
                    script {
                      sh (script: "./run.sh ${cl}", returnStdout: true)
                    }
                  }
                }
              }
            }
          }
        }
    }
    stage('main') {
      steps {
        parallel tasks
      }
    }
  }
}

有办法解决这个问题吗?

谢谢

共有1个答案

曹旭
2023-03-14

阶段('main')以自己的{开始之前,您的阶段('pre')似乎不受结束“}”的限制。

看看在这里再添加一个'}'是否会有帮助。

 类似资料:
  • 问题内容: 我有要并行处理的元素的集合。当我使用时,并行性有效。但是,当我使用时,它不会并行运行。 我写了一个代码样本来说明问题: 这是我在Windows 7上获得的输出 我们可以看到中的第一个元素必须在处理第二个元素之前完成。对于,第二个元素在第一个元素结束之前开始。 您能否告诉我是什么原因导致此问题,以及如何使用集合避免发生此问题? 问题答案: 我可以重现您看到的行为,其中并行性与您指定的fo

  • 我有要并行处理的元素集合。当我使用时,并行性起作用。但是,当我使用时,它不会并行运行。

  • 但是,如果首先获取jenkinsfile时出现问题,则作业将以静默方式失败。如何在管道启动之前就从一般的作业启动失败中生成通知?

  • 我使用Jenkins和Build Pipeline插件来构建一些相当复杂的项目,这些项目需要多个编译步骤: 构建源RPM。 构建二进制RPM(这是执行两次,一次为每个平台)。 部署到YUM仓库。 我解决构建需求的策略包括将公共工作拆分为参数化作业,这些作业可以跨项目和分支重用,每个作业代表管道中的一个阶段。每个阶段都由参数触发,并将构建工件传递给管道中的下一个作业。然而,我在这个策略上遇到了一些麻

  • 问题内容: 我正在使用以下脚本运行Jenkins Build Flow插件: 但是,尽管正确填充了哈希(builds [it]),但parm始终为null。我也尝试了以下方法: 但是它始终为空。 任何人都可以给我关于如何使用$ it或构建作业中任何其他变量的任何指示。 问题答案: 似乎您在Build Flow Plugin中遇到了一个错误(我已经看到了Pipeline DSL的类似问题)。没有专家

  • 大家好,, 我有2张谷歌表格,上面的截图中显示了数据。对于第一个google工作表,空的行是第3行 如您所见,第二张google工作表中的数据从