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

Jenkins声明式Pipeline执行指定条件阶段后如何跳过后续所有阶段

Jenkins声明式Pipeline实现方案

核心思路

  • 定义一个全局状态标记位,默认值为false,用来标识是否需要跳过后续所有阶段
  • 目标特定阶段执行完成后,将该标记位设置为true
  • 后续所有阶段都添加when条件判断,仅当标记位为false时才执行

具体实现示例

我们假设你提到的特定stage是第一个名为ConditionalStage的阶段,满足触发条件执行后跳过后面3个stage,完整Jenkinsfile示例如下:

pipeline {
    agent any
    environment {
        // 定义全局跳过标记,默认不跳过
        SKIP_REMAINING = 'false'
    }
    stages {
        stage('ConditionalStage') { // 你的特定条件stage
            when {
                // 这里替换为你原来的触发条件,比如分支匹配、参数触发等
                expression { params.RUN_SPECIAL_STAGE == true }
            }
            steps {
                // 你该stage的原有业务逻辑
                echo 'Running special conditional stage'
            }
            post {
                success {
                    // 只要该stage成功执行,就标记跳过后续
                    // 如果只要触发执行不管成功失败都跳,就写在always块里
                    env.SKIP_REMAINING = 'true'
                }
            }
        }
        stage('Stage2') {
            when {
                expression { env.SKIP_REMAINING == 'false' }
            }
            steps {
                echo 'Running stage 2'
            }
        }
        stage('Stage3') {
            when {
                expression { env.SKIP_REMAINING == 'false' }
            }
            steps {
                echo 'Running stage 3'
            }
        }
        stage('Stage4') {
            when {
                expression { env.SKIP_REMAINING == 'false' }
            }
            steps {
                echo 'Running stage 4'
            }
        }
    }
}

可选调整说明

  • 如果要求特定stage只要触发执行(无论执行成功还是失败)都跳过后续阶段,就把修改SKIP_REMAINING的逻辑放到post下的always块即可
  • 如果你的特定stage不是第一个,只需要把后续的所有stage都加上对应的when判断即可,逻辑完全通用

内容的提问来源于stack exchange,提问作者Alon Tsaraf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:09:05