Jenkins 詹金斯并联管道

Jenkins 詹金斯并联管道,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我有一个管道脚本,目前可以按顺序执行所有操作: node('virtual'){ stage('setup'){...} stage('build'){...} stage('test'){...} stage('clean'){...} } node('real'){ stage('setup'){...} stage('build'){...} stage('test'){...} stage('clean'){...} }

我有一个管道脚本,目前可以按顺序执行所有操作:

node('virtual'){
    stage('setup'){...}
    stage('build'){...}
    stage('test'){...}
    stage('clean'){...}
}
node('real'){
    stage('setup'){...}
    stage('build'){...}
    stage('test'){...}
    stage('clean'){...}
}
如果我想让它并行,最好的方法是什么?我知道阶段不应该/不可能在并行语句中,但我需要所有这些阶段都发生在同一个节点上。每个节点的命令确实不同

这是一个可以接受的解决方案吗?我确实需要编译后的Build输出在测试中可以访问,如果我不需要它们,我想最小化任何
checkout scm
,除了第一个

stage('setup'){
    parallel(
        virtual:{
            node('virtual'){
                // do work
                // stash what is needed
            }
        },
        real:{
            node('real'){
            // do work
            // stash what is needed
            }
        })
}
stage('setup'){
    parallel(
        virtual:{
            node('virtual'){
                //unstash setup
                // do work
                // stash what is needed
            }
        },
        real:{
            node('real'){
            // do work
            // stash what is needed
            }
        })
}
// continue for the rest...