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

Jenkins如何在Git PR信息包含指定内容时触发对应stage?

Jenkins指定Stage条件触发实现方案

1. 前置配置要求

首先确认Jenkins已安装对应依赖:

  • 基础Pipeline、Git插件
  • 对应代码托管平台的集成插件(GitHub/GitLab/Gitee等,用于获取PR元数据)
  • 配置Webhook触发器,确保代码提交、PR创建/更新事件均可触发流水线运行

2. 核心实现逻辑

通过声明式流水线的when条件组合判断三个触发规则即可:

  1. 当前触发事件为PR事件
  2. PR源分支为feature前缀分支、目标分支为master
  3. PR描述/标题包含指定字符串Please build full pipeline

声明式流水线示例代码

pipeline {
    agent any
    stages {
        // 基础构建stage,所有场景都执行
        stage('基础流水线构建') {
            steps {
                echo '执行常规构建、单测、代码扫描等逻辑'
                // 此处添加你的常规构建逻辑
            }
        }
        // 特定触发stage,仅符合条件时运行
        stage('触发其他Job的特定Stage') {
            when {
                allOf {
                    // 通用变量,判断当前为变更请求(PR)事件,主流代码托管平台插件均支持
                    expression { env.CHANGE_ID != null }
                    // 判断PR目标分支为master
                    expression { env.CHANGE_TARGET == 'master' }
                    // 判断PR源分支为feature开头的分支,可根据你的分支命名规则调整匹配规则
                    expression { env.CHANGE_BRANCH.startsWith('feature/') }
                    // 判断PR描述包含指定字符串,需要判断标题可替换为CHANGE_TITLE变量
                    expression { env.CHANGE_DESCRIPTION?.contains('Please build full pipeline') }
                }
            }
            steps {
                echo '符合触发条件,执行对应Job触发逻辑'
                // 此处添加触发其他Job的逻辑,示例:build job: '目标Job名称', wait: false
            }
        }
    }
}

不同平台变量适配说明

如果你使用的平台插件没有适配通用CHANGE_*变量,可以替换为平台特有的环境变量:

  • GitHub平台:源分支GITHUB_HEAD_REF、目标分支GITHUB_BASE_REF、PR描述GITHUB_PR_BODY
  • GitLab平台:源分支CI_MERGE_REQUEST_SOURCE_BRANCH_NAME、目标分支CI_MERGE_REQUEST_TARGET_BRANCH_NAME、PR描述CI_MERGE_REQUEST_DESCRIPTION

3. 功能验证步骤

可以按以下场景逐一验证规则生效性:

  • 直接向feature分支提交代码:仅运行基础构建stage,特定stage跳过
  • 从feature分支向非master分支提交PR:无论是否携带指定字符串,特定stage均跳过
  • 从feature向master提交PR,描述不含指定字符串:特定stage跳过
  • 修改上述PR描述添加Please build full pipeline并触发流水线:特定stage正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:48:03