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

如何在Jenkins Pipeline中实现从指定阶段启动并执行后续所有阶段

Jenkins Pipeline 任意阶段启动解决方案

核心逻辑是为所有阶段按执行顺序建立索引,通过判断当前阶段索引是否大于等于选中的启动阶段索引,实现从指定阶段开始向后全量执行。

修改后完整代码

pipeline {
    agent any
    parameters {
        choice(name: 'START_FROM', choices: ['stage1', 'stage2', 'stage3'], description: 'Choose which step to start the job on.')
    }
    environment {
        // 按实际阶段执行顺序维护列表,需和parameters中的choices选项顺序、名称完全一致
        STAGE_LIST = ['stage1', 'stage2', 'stage3']
    }
    stages {
        stage('stage1') {
            when {
                expression { STAGE_LIST.indexOf(params.START_FROM) <= STAGE_LIST.indexOf('stage1') }
            }
            steps {
                echo "stage1 executing"
            }
        }

        stage('stage2') {
            when {
                expression { STAGE_LIST.indexOf(params.START_FROM) <= STAGE_LIST.indexOf('stage2') }
            }
            steps {
                echo "stage2 executing"
            }
        }

        stage('stage3') {
            when {
                expression { STAGE_LIST.indexOf(params.START_FROM) <= STAGE_LIST.indexOf('stage3') }
            }
            steps {
                echo "stage3 executing"
            }
        }
    }
}

核心改动说明

  • 新增STAGE_LIST全局变量统一维护阶段执行顺序,后续新增阶段只需同步修改该列表和parameters中的choices配置即可,维护成本低
  • 将原when条件的全等判断替换为索引大小判断:只要当前阶段的执行顺序在选中的启动阶段之后(含自身),就会触发执行
  • 修正了原代码中stage2、stage3的echo输出内容错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:54:03