Jenkins pipeline 如何在声明性文件中定义多个代理?

Jenkins pipeline 如何在声明性文件中定义多个代理?,jenkins-pipeline,agent,jenkins-declarative-pipeline,Jenkins Pipeline,Agent,Jenkins Declarative Pipeline,在我的Jenkins文件中,我希望在两个代理上并行运行特定阶段。例如: stage('abc'){ agent { label "dev6" && "dev7" } steps { xyz() } } 我有两个标签为dev6和dev7的从机。我希望xyz()同时在代理dev6和dev7上并行启动。正确的方法是什么?我需要平行块吗?从上面的代码中,它只启动dev6或dev7之一上的函数。我试过了 label "dev6 || dev7" labe

在我的Jenkins文件中,我希望在两个代理上并行运行特定阶段。例如:

stage('abc'){
  agent {
    label "dev6" && "dev7"
  }
  steps {
    xyz()
  }
}
我有两个标签为dev6和dev7的从机。我希望xyz()同时在代理dev6和dev7上并行启动。正确的方法是什么?我需要平行块吗?从上面的代码中,它只启动dev6或dev7之一上的函数。我试过了

label "dev6 || dev7"

label "dev6 && dev7"  
但它不起作用。有人能帮忙吗


谢谢

您需要在阶段级别上进行并行,原因实际上是您希望它在单独的代理上运行两次。除非我误解了你

pipeline {
    agent none
    stages {
        stage('Test') {
            parallel {
                stage('Test On dev6') {
                    agent {
                        label "dev6"
                    }
                    steps {
                        xyz()
                    }
                }
                stage('Test On dev7') {
                    agent {
                        label "dev7"
                    }
                    steps {
                        xyz()
                    }
                }
            }
        }
    }

谢谢你们为我工作:)我可以在代理的标签中添加一些正则表达式吗。因此,我只有一个stage块,如果表达式与该regex匹配,它将在所有与该regex标签匹配的从机上启动该作业
pipeline{agent none stages{stage('Test'){parallel{stage(Test){agent{label“SOME regex”}步骤{xyz()}}}
老实说,我不确定你能做到这一点。