我正在尝试在阶段内的when语句中检测分支模式。
赞:
stage('deploy to staging') {
agent label:'some-node'
when { branch "feature/*" }
steps {
sh './deploy_pr.sh'
}
}
如果我想要更复杂的图案怎么办?
我正在尝试检测诸如feature / 0.10.25之类的内容,并且以下模式不起作用:
when { branch 'feature/[0-9]+.[0-9]+.[0-9]+' }
不起作用。根据{{3}}
,这是正确的正则表达式答案 0 :(得分:2)
好!因此,通过错误堆栈跟踪,我发现在when-branch选项上,Jenkins与Ant样式模式进行了比较: https://ant.apache.org/manual/dirtasks.html
这意味着它不希望使用正则表达式,但是更简单的东西例如:
*/staging/*
我改用when-expression选项解决了这个问题,
when {
expression { BRANCH_NAME ==~ /feature\/[0-9]+\.[0-9]+\.[0-9]+/ }
}
它使用groovy表达式,如下所述:
https://www.regular-expressions.info/groovy.html
尤其是寻找==〜运算符的解释,这很有帮助。
对于正则表达式本身,您可以在此处进行测试: