Docker 多任务DSL-如何;标签";每个阶段作业在作业DSL插件中都有特定的节点/云/代理?

Docker 多任务DSL-如何;标签";每个阶段作业在作业DSL插件中都有特定的节点/云/代理?,docker,jenkins,jenkins-job-dsl,Docker,Jenkins,Jenkins Job Dsl,我正试图在带有特定节点的DSL插件中标记每个phaseJob(在我的例子中,它是使用docker插件创建的docker云) 它不是用特定节点(docker cloud)标记每个阶段作业,而是用最新提到的docker cloud/节点标签标记每个作业 我尝试了以下DSL配置示例: multiJob('example-multiple-job') { steps { phase('First') { phaseJob('JobA'){

我正试图在带有特定节点的DSL插件中标记每个phaseJob(在我的例子中,它是使用docker插件创建的docker云)

它不是用特定节点(docker cloud)标记每个阶段作业,而是用最新提到的docker cloud/节点标签标记每个作业

我尝试了以下DSL配置示例:

multiJob('example-multiple-job') {
    steps {
        phase('First') {
            phaseJob('JobA'){
                label('docker-a')
                shell('echo Hello World JobA!') 
                shell('sleep 1m')
            }
            phaseJob('JobB'){
                label('docker-b')
                shell('echo Hello World JobB!')
                shell('sleep 1m')
            }
        }
    }
}
因此,它使用docker-b标签标记整个多任务(因为它是最新的一个)

除此之外,我还尝试了以下语法:

multiJob('example-multiple-job') {
    steps {
        phase('First') {
            job('JobA'){
                label('main-docker-a')
                shell('echo Hello World JobA!') //
                shell('sleep 1m')
            }
            job('JobB'){
                label('main-docker-b')
                shell('echo Hello World JobB!')
                shell('sleep 1m')
            }
        }
    }
}
它创建具有预期标签的作业,但它们不包括在多个作业项目中

我的期望是:


以下每个阶段作业都在自己的docker cloud节点上运行,并自动包含在多个作业项目中,就像它没有标记一样。

阅读了一段时间后,我带来了解决方案。事实上,只是需要更仔细地阅读:)

下面是一个工作示例,演示了如何在docker容器中并行执行具有自己标记的节点/docker云的多个作业

job('JobA') {
    label('docker-a')
    steps {
        shell('echo Hello World Job-A!')
        shell('sleep 1m')
    }
}

job('JobB') {
    label('docker-b')
    steps {
        shell('echo Hello World Job-B!')
        shell('sleep 1m')
    }
}

multiJob('example-multiple-job') {
    steps {
        phase('First') {
            phaseJob('JobA')
            phaseJob('JobB')
        }
    }
}
正如我所说的,jobs和其他所有符号都是单独创建的,但是multipleJob()指令只是通过附加的行为和功能帮助管理它们