我有一条管道,里面有多个工作岗位,但我面临着两难境地。管道内作业的执行顺序是什么?是剧本里的顺序吗?我感兴趣的原因是因为我希望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")
}
}
}
}
}
}
1条答案
按热度按时间uyto3xhc1#
根据上面的管道,
parallel
块中的每个Stage
都将并行运行。所以你不能保证会有订单。如果要按顺序执行它们,请删除并行块。则Stages
将按照它们被定义的顺序执行。如果您只想先执行JOB1
,然后再并行执行其他程序和JOB1,那么只需将第一个阶段从并行块移出即可。