Jenkins声明式语法下仅在无标签分支执行阶段的报错问题
解决Jenkins声明式语法中阶段仅在无标签分支执行的问题
你遇到的groovy.lang.MissingPropertyException错误,是因为直接引用TAG_NAME变量未找到——Jenkins的环境变量需要通过env对象访问,且直接判断null可能覆盖不全(部分场景下env.TAG_NAME会是空字符串而非null)。以下是两种可靠的解决方案:
方案一:通过环境变量判断
使用env.TAG_NAME并同时处理null和空字符串的情况:
stage ('Do stuff'){ when { expression { env.TAG_NAME == null || env.TAG_NAME.trim().isEmpty() } } steps { sh'''#!/bin/bash ... ''' } }
方案二:使用Jenkins内置条件(推荐)
声明式语法支持直接用not+tag条件判断,写法更简洁可靠:
stage ('Do stuff'){ when { not { tag '*' } } steps { sh'''#!/bin/bash ... ''' } }
tag '*'会匹配所有标签构建,not取反后,该阶段仅在无标签的分支构建时执行。
内容的提问来源于stack exchange,提问作者schande
相关产品推荐
相关产品推荐

