执行并行Jenkins步骤,并独立于第二步执行状态进入下一阶段

执行并行Jenkins步骤,并独立于第二步执行状态进入下一阶段,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我试图从遗留的上下游作业执行Jenkins管道构建 node () { stage('Checkout') { <Code for checkout> } stage ('Support') { <Restore dependencies> <Restore build environment> } stages{ parallel{ stage ('Build

我试图从遗留的上下游作业执行Jenkins管道构建

    node () {
stage('Checkout') {
    <Code for checkout> 
    }
stage ('Support') {
    <Restore dependencies>
    <Restore build environment>
    }
    stages{
        parallel{
            stage ('Build and Archive'){
                stages{
                    stage ('BuildSolution') {
                        <Build Solution>
                        }
                    stage ('Signing') {
                        <Sign deliverables>
                        }
                    stage ('InstallerCreation') {
                        <Create deployment package>
                        }

                    stage ('CreateNgPkg') {
                        <Create SDK package>
                        }
                    }
                }
            stage ('SecurityScan'){
                <Execute scan on the complete source code>
                }
            }
        }
    }
}
节点(){
阶段(“签出”){
<签出代码>
}
阶段(“支持”){
}
舞台{
平行的{
阶段(“构建和归档”){
舞台{
阶段('构建解决方案'){
}
阶段(‘签字’){
}
阶段('InstallerCreation'){
}
阶段('CreateNgPkg'){
}
}
}
阶段('SecurityScan'){
}
}
}
}
}
我想并行运行stage('Build')stage('Scan'),执行stage('Build')后,应该启动stage('CreateNgPkg'),而不检查或等待stage('Scan')


更新:


我尝试使用上面的嵌套阶段来实现我所需要的,但执行时出现错误“在步骤中找不到这样的DSL方法‘阶段’”-没有语法错误,只是在运行时出现此错误。

您要做的是执行一组stage Build,然后与stage Scan并行创建ngpkg

它转换为以下Jenkins DSL:

node () {
    stage ('Checkout') 
    {
        echo 'Checkout'
    }
    stage ('Support') 
    {
        echo 'Support'
    }
    parallel Build: {
        stage ('Build') 
        {
            echo 'build'
        }
        stage ('CreateNgPkg') 
        {
            echo 'CreateNgPkg'
        }
    }, secondStage: {
        stage ('Scan') 
        {
            echo 'scan'
        }
    }
}
我个人更喜欢声明性dsl,它的文档化程度更好,可以省略

您要做的是执行一组stage Build,然后与stage Scan并行创建ngpkg

它转换为以下Jenkins DSL:

node () {
    stage ('Checkout') 
    {
        echo 'Checkout'
    }
    stage ('Support') 
    {
        echo 'Support'
    }
    parallel Build: {
        stage ('Build') 
        {
            echo 'build'
        }
        stage ('CreateNgPkg') 
        {
            echo 'CreateNgPkg'
        }
    }, secondStage: {
        stage ('Scan') 
        {
            echo 'scan'
        }
    }
}
我个人更喜欢声明性dsl,它的文档化程度更好,可以省略

为什么不将其添加为另一个并行作业?或者你的意思是阶段(“构建”)必须完成,而不仅仅是执行?为什么不将其添加为另一个并行作业?或者你的意思是阶段(“构建”)必须完成,而不仅仅是执行?我尝试了前面提到的嵌套步骤,但没有成功。谢谢你的回复。我尝试使用你的语法,效果如预期。我尝试了前面提到的嵌套步骤,但没有成功。谢谢你的回复。我试着使用你的语法,结果一切正常。