我正在尝试检测阶段内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]+' }
不起作用。这是一个正确的正则表达式,根据https://regexr.com/ https://regexr.com/
好的 !因此,通过错误堆栈跟踪,我发现在 when-branch 选项上,Jenkins 与 Ant 风格模式进行了比较:https://ant.apache.org/manual/dirtasks.html https://ant.apache.org/manual/dirtasks.html
这意味着它不需要正则表达式,而是更简单的东西,例如:
*/staging/*
我通过使用when-表达式选项解决了这个问题,如下所示:
when {
expression { BRANCH_NAME ==~ /feature\/[0-9]+\.[0-9]+\.[0-9]+/ }
}
它使用常规表达式,如下所述:
https://www.regular-expressions.info/groovy.html https://www.regular-expressions.info/groovy.html
特别是,查找 ==~ 运算符的解释,这很有帮助。
对于正则表达式本身,您可以在这里测试您的:
https://regexr.com/ https://regexr.com/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)