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

Jenkins Pipeline中when标签正则匹配不生效问题求助

解决Jenkins Pipeline标签匹配不生效问题

问题根源

你遇到的问题出在when { tag }的比较器和表达式写法上:

  • 第一种配置用*rc*搭配REGEXP比较器,但REGEXP只识别标准正则语法,不支持通配符*。
  • 第二种配置给正则加了首尾斜杠/(.*)rc(.*)/,Jenkins会把斜杠当作匹配内容的一部分,导致只有标签包含斜杠时才会命中,不符合需求。

正确配置方案

方案1:使用正则表达式(REGEXP比较器)

用标准正则匹配包含rc的标签,无需加首尾斜杠:

pipeline {
    agent any
    stages {
        stage('Build') {
            when {
                tag pattern: '.*rc.*', comparator: 'REGEXP'
            }
            steps {
                sh "echo 'DO SOMETHING'"
            }
        }
    }
}

如果需要忽略rc的大小写(如匹配RC/Rc),可修改正则为:

tag pattern: '(?i).*rc.*', comparator: 'REGEXP'

方案2:使用通配符(GLOB比较器)

若更习惯用*作为通配符,切换到GLOB比较器即可直接用*rc*匹配:

pipeline {
    agent any
    stages {
        stage('Build') {
            when {
                tag pattern: '*rc*', comparator: 'GLOB'
            }
            steps {
                sh "echo 'DO SOMETHING'"
            }
        }
    }
}

额外注意事项

  • 确保当前构建是标签触发的:when { tag }仅对标签类型构建生效,分支构建会直接跳过该阶段(分支无标签)。
  • 检查标签实际格式:比如带前缀的v1.0.0-rc1,上述两种方案都能正常匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:31:19