Regex 詹金斯管道中的正则表达式

Regex 詹金斯管道中的正则表达式,regex,jenkins,groovy,jenkins-pipeline,jenkins-groovy,Regex,Jenkins,Groovy,Jenkins Pipeline,Jenkins Groovy,我正在尝试创建一个Jenkins管道步骤,该步骤应该只对某些Gerrit项目运行。特别是,对于变量GERRIT_项目以“platform/zap”开头的所有项目。 遗憾的是,我在Groovy方面缺乏技能 到目前为止,我得到的是: stage ('zap') { when { expression { isMatch = env.GERRIT_PROJECT =~ /^platform\/zap/

我正在尝试创建一个Jenkins管道步骤,该步骤应该只对某些Gerrit项目运行。特别是,对于变量GERRIT_项目以“platform/zap”开头的所有项目。 遗憾的是,我在Groovy方面缺乏技能

到目前为止,我得到的是:

stage ('zap') {
        when {
            expression {
                isMatch = env.GERRIT_PROJECT =~ /^platform\/zap/
                return isMatch
            }
        }
        steps {
            build job: 'Zap', parameters: [
                string(name: 'ZAP_PROJECT', value: env.GERRIT_PROJECT)
            ]
        }
    }
换句话说,该阶段应该针对“平台/zap/os”执行,而不是针对“app/hello”

非常感谢您的指导。


第二节环境:

环境
当指定的环境变量 设置为给定值,例如:{environment name: 'DEPLOY_TO',值:'production'}


也许这会有所帮助?

您可以使用
String.startsWith(str)
返回
true
env.GERRIT\u项目
platform/zap
开头

stage('zap'){
什么时候{
表情{
环境GERRIT_项目?.startsWith(“平台/zap”)
}
}
台阶{
生成作业:“Zap”,参数:[
字符串(名称:“ZAP_项目”,值:env.GERRIT_项目)
]
}
}
若由于某种原因,
env.GERRIT_PROJECT
为空,为了避免NPE,您可以使用NPE安全运算符
?。
调用
startsWith
方法

将Groovy的精确匹配运算符与正则表达式结合使用的替代解决方案如下所示:

stage('zap'){
什么时候{
表情{
env.GERRIT_项目==~/^platform\/zap(.*)$/
}
}
台阶{
生成作业:“Zap”,参数:[
字符串(名称:“ZAP_项目”,值:env.GERRIT_项目)
]
}
}

你是个明星!您的两种解决方案都能如约工作。Champion。几个小时来一直在寻找这样的解决方案。非常有用的提示,谢谢。但它只处理完全匹配。