You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Pipeline任务执行顺序及JOB重复执行问题咨询

Jenkins Pipeline 问题解答

问题一:Pipeline内任务的执行顺序是否遵循脚本编写顺序?

  • 若Pipeline采用顺序执行的stages结构,任务会严格按照脚本中stage的编写顺序依次运行,前一个stage执行完成后才会启动下一个。
  • 但如果使用parallel块包裹多个stage,这些被包裹的stage会同时启动并行执行,它们的完成顺序不遵循脚本编写顺序,完全取决于每个任务自身的执行耗时,无法保证先后。

问题二:JOB1连续执行两次的原因

从你提供的Pipeline代码来看,问题出在parallel块内部:你定义了两个独立的stage('JOB1'),每个stage里都调用了callJobByName("JOB1")触发JOB1。由于parallel块会同时启动内部所有stage,这两个stage会并行触发JOB1,最终导致JOB1被执行两次。

如果你需要JOB1在Pipeline开始和中间阶段执行,应该调整结构,把JOB1的执行放在顺序的stage中,而非同一个parallel块内,示例如下:

pipeline {
    agent any;
    options {
        timeout(time: 4, unit: 'HOURS')
    }
    stages {
        stage('Start with JOB1') {
            steps {
                callJobByName("JOB1")
            }
        }
        stage('Parallel tests') {
            parallel {
                stage('JOB2') {
                    steps {
                        callJobByName("JOB2")
                    }
                }
                stage('JOB3') {
                    steps {
                        callJobByName("JOB3")
                    }
                }
            }
        }
        stage('Middle stage JOB1') {
            steps {
                callJobByName("JOB1")
            }
        }
    }
}

这样JOB1会在Pipeline开始时执行一次,等并行的JOB2、JOB3完成后,再执行第二次,符合你“开始和中间阶段执行”的需求。

内容的提问来源于stack exchange,提问作者Silviu Sabău

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:45:48