我有一个Jenkins管道阶段,如果在第一行不在when
形式的提交消息(大小写和一些空格不敏感)中没有魔术字符串,我想跳过它。我试图使用changelog
指令和.../im
条件,但它似乎不喜欢我的正则表达式,因为它的格式错误或字面解释标志{ {1}}或转义空白\s
。我不太清楚如何有效地调试它......
stage('Publish') {
when {
changelog '/.*^release:\\s*(major|minor|patch)\\s*$/im'
}
# ...
}
当它是"裸露的"像changelog /.*^
这样的正则表达式...它有语法错误。
有没有办法让正则表达式工作,或者像
这样的其他解决方案when {
expression {
???? ==~ /.*^release:\\s*(major|minor|patch)\\s*$/im
}
好吗?不知道什么可以放入????。
答案 0 :(得分:0)
在Groovy / Java中,正则表达式标志应该在开头,并用括号括起来,如/(?im).*^release:\s*(major|minor|patch)\s*$/
。
您还可以从currentBuild.changeSets
获取提交更改集。对于git,它返回一组GitChangeSet。
以下内容应该有效
when {
expression {
currentBuild.changeSets.any { it.comment =~ /(?im).*^release:\s*(major|minor|patch)\s*$/ }
}
}