繁体   English   中英

Multijob DSL - 如何在 Job DSL 插件中使用特定节点/云/代理“标记”每个 phaseJob?

[英]Multijob DSL - How to “label” each phaseJob with specific node/cloud/agent in Job DSL plugin?

我正在尝试label具有特定节点的multiJob DSL 插件中的每个phaseJob (在我的情况下,它是使用 Docker 插件创建的 docker-cloud)。

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

我尝试了以下示例 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 label 标记整个 multiJob(因为它是最新的)

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

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')
            }
        }
    }
}

它使用预期的 label 创建作业,但它们不包含在多作业项目中。

我的期望是:

每个后续阶段作业都在其自己的docker -cloud 节点上运行,并自动包含在多个作业项目中,因为它无需标记即可完成。

在阅读了 Job DSL 文档一段时间后,我找到了解决方案。 实际上,只需要仔细阅读即可:)

这是一个工作示例,说明如何在 docker 容器中并行执行多个具有自己标记的节点/docker-cloud 的作业

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')
        }
    }
}

正如我所理解的那样,工作和其他一切都是分开创建的,但是multipleJob()指令只是通过附加的行为和特性来帮助管理它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM