Regex 詹金斯管道中的正则表达式
我正在尝试创建一个Jenkins管道步骤,该步骤应该只对某些Gerrit项目运行。特别是,对于变量GERRIT_项目以“platform/zap”开头的所有项目。 遗憾的是,我在Groovy方面缺乏技能 到目前为止,我得到的是: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/
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。几个小时来一直在寻找这样的解决方案。非常有用的提示,谢谢。但它只处理完全匹配。