Jenkins脚本式Pipeline如何实现声明式changelog条件判断?
脚本式Jenkins Pipeline实现变更日志魔术词匹配的方案
声明式Pipeline里的changelog是专属语法糖,脚本式Pipeline没有直接对应的内置函数,你得自己实现变更日志的匹配逻辑。核心思路是通过currentBuild.changeSets获取触发构建的所有提交记录,遍历检查提交信息中是否包含目标魔术词。
修改后的可运行脚本式Pipeline代码如下:
node { stage('Dummy') { def shouldRun = false // 遍历所有变更集 for (changeSet in currentBuild.changeSets) { for (entry in changeSet.items) { // 检查提交信息是否匹配目标魔术词的正则 if (entry.msg =~ /\[ci BUILD\]/) { shouldRun = true break } } if (shouldRun) break } if (shouldRun) { echo 'Building dummy...' } } }
关键细节说明:
currentBuild.changeSets:包含触发本次构建的所有提交变更集合,适配多提交触发的场景entry.msg:对应单条提交的描述信息,通过正则匹配[ci BUILD]魔术词- Groovy斜杠字符串
/.../:这种字符串里,正则元字符如[、]无需额外转义,直接写即可匹配原文本中的方括号
内容的提问来源于stack exchange,提问作者Ali Kozan
相关产品推荐
相关产品推荐

