Jenkins管道中作业的执行顺序是什么?

58wvjzkj  于 2022-09-20  发布在  Jenkins
关注(0)|答案(1)|浏览(303)

我有一条管道,里面有多个工作岗位,但我面临着两难境地。管道内作业的执行顺序是什么?是剧本里的顺序吗?我感兴趣的原因是因为我希望JOB1在管道的开始处运行,并在中间的某个位置运行。然而,当管道开始运行JOB1时,无论出于什么原因,它都会连续运行两次。有什么特别的原因吗?还是我漏掉了什么?

pipeline {
    agent any;
    options {
        timeout(time: 4, unit: 'HOURS')
    }
    stages {
        stage('All tests in parallel') 
        {
            parallel 
            {
                stage('JOB1') {
                    steps {

                        callJobByName("JOB1")
                    }
                }
                stage('JOB2') {
                    steps {
                        callJobByName("JOB2")
                    }
                }
                stage('JOB1') {
                    steps {
                        callJobByName("JOB1")
                    }
                }
                stage('JOB3') {
                    steps {
                        callJobByName("JOB3")
                    }
                }
            }
        }
    }
}
uyto3xhc

uyto3xhc1#

根据上面的管道,parallel块中的每个Stage都将并行运行。所以你不能保证会有订单。如果要按顺序执行它们,请删除并行块。则Stages将按照它们被定义的顺序执行。如果您只想先执行JOB1,然后再并行执行其他程序和JOB1,那么只需将第一个阶段从并行块移出即可。

pipeline {
agent any;
options {
    timeout(time: 4, unit: 'HOURS')
}
stages {
    stage('All tests in parallel') 
    {
        stage('JOB1') {
          steps {

              callJobByName("JOB1")
          }
        }
        parallel 
        {
            stage('JOB2') {
                steps {
                    callJobByName("JOB2")
                }
            }
            stage('JOB1') {
                steps {
                    callJobByName("JOB1")
                }
            }
            stage('JOB3') {
                steps {
                    callJobByName("JOB3")
                }
            }
        }
    }
}
}

相关问题