詹金斯通过 DSL 启动工作,不要等待工作完成

Luk*_*ley 6 dsl groovy jenkins

我试图通过 Jenkins DSL 启动一个项目,但不需要等待它完成。基本上我希望它开始一份孤儿工作。

node("slave-node")
{
    // Launch pipeline job
    stage("LaunchPipelineJob")
    {
        // this step runs for x mins and does a buch of work
        echo "Starting pipelinejob"
        def pipelinejob  = build job: 'pipelineStep'
        //echo "Pipeline job status: ${pipelinejob.result}"
    }

    // Launch the orphan
    stage("LaunchOrphanJob")
    {
        // need to kick off this job, but dont care to wait for it to finish
        echo "Starting orphanPipelinejob"
        def orphanPipelinejob  = build job: 'orphanStep'
    }
}
Run Code Online (Sandbox Code Playgroud)

我查看了 dsl,但找不到任何关于如何启动孤儿的文档。谢谢

小智 7

stage{
    build job: 'pipelineStep', parameters: [string(name: 'xxx', value: xxx), string(name: 'yyy', value: yyy)],wait:false
} 
stage{
    build job: 'orphanStep', parameters: [string(name: 'xxx', value: xxx), string(name: 'yyy', value: yyy)],wait:false
}
Run Code Online (Sandbox Code Playgroud)

仅供参考,当您给出 时wait = false,runwrapper 将不会返回任何对象,因此您将无法获取与子作业(pipelineSteporphanStep)相关的任何详细信息。

运行包装器.html


小智 6

这应该这样做。

build job: 'pipelineStep', propagate: false, wait: false