错误:并行步骤只能用作唯一的顶层步骤

错误:并行步骤只能用作唯一的顶层步骤

问题描述:

当我使用此脚本时,它可以按预期工作:

When I use this script it works as expected:

stage("B") {
    parallel (
        'C' : { 
            stage ("BC") {
                parallel (
                    'E' : {
                        stage("Many") {
                            println "E1"
                            println "E2"
                        }
                    },
                    'F' : { println "F" }
                )
            }
        },
        'D' : { println "D" }
    )
}

但是,如果封闭在管道块中,它将失败并显示错误使用了无效的步骤'stage'-在此情况下不允许-阶段步骤不能在Pipeline的步骤块中使用" >

But if enclosed in a pipeline block it fails with an Error "Invalid step 'stage' used - not allowed in this context - The stage step cannot be used in step blocks in Pipeline"

pipeline {
    agent label:"debian"
    stages {
        stage("B") {
            parallel (
                'C' : { 
                    stage ("BC") {
                        parallel (
                            'E' : {
                                stage("Many") {
                                    println "E1"
                                    println "E2"
                                }
                            },
                            'F' : { println "F" }
                        )
                    }
                },
                'D' : { println "D" }
            )
        }
    }
}

知道为什么吗?

不知道这是否仍然是您的问题;但是搜索引擎仍然会针对相关查询提出这个问题...

正如 Jenkins文档所述,您不能嵌套parallel指令:

As Jenkins docs say, you cannot nest parallel directives:

嵌套的stages本身不能包含更多的parallel阶段,...

The nested stages cannot contain further parallel stages themselves, ...