Jenkins管道并行步骤需要在上一步的基础上运行

bfnvny8b  于 2022-10-06  发布在  Jenkins
关注(0)|答案(1)|浏览(162)

这是我目前用来运行NodeJS应用程序管道的Jenkisnfile脚本。它运行良好,适合我之前的流水线流程。

现在,我需要在我的脚本中针对新的项目要求进行一些更改。

步骤B中如果应用程序无法通过NPM启动命令启动,则**步骤C(内部版本)**不需要触发作业。

现在,使用这种管道脚本方法,无论应用程序因并行块而无法启动或成功运行,**“步骤C”(内部版本)**都将始终运行。

pipeline {
agent any   
stages {
    stage('need to run parallelly'){
        steps{
            script{
                parallel(
                    a:{
                        dir('file path'){
                            bat """
                            npm install
                            """
                        }
                    },
                    b:{
                        dir('file path'){
                            bat """
                            npm start
                            """
                        }  
                    },
                    "build":{
                        build job: 'JenkinsTest'
                    },
                )
            }
        }
    }
}
icnyk63a

icnyk63a1#

有两种方式:

1/使用全局布尔参数和休眠命令。我的意思是,估计B阶段运行“NPM命令”完成的时间,C阶段休眠,直到你得到NPM命令结果,例如:

boolean isFail = false
Stage B:

      if (NPM_Command.isFail()) isFail = true
    Stage C: 
      Sleep(60) //eg 1 min is enough for run stage B
      if(isFail) 
        // do your work

2/正如您所说,您的问题是,如果B阶段失败,则无法到达C阶段,try this solution

相关问题