You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Groovy条件不满足时让Jenkins Stage失败?

解决方案

先说说你之前两种写法的问题:

  • 尝试1的assert逻辑搞反了:assert是当条件为false时才会抛出错误终止构建。你写的assert version !=~ versionPattern,意思是只有版本匹配正则时(此时条件为false)才会失败,完全和需求相反。
  • 尝试2的问题有两个:一是用了字符串直接相等!=而非正则匹配的取反,判断逻辑错误;二是exit 1不是Jenkins Pipeline终止Stage的正确方式,容易导致进程异常终止,而非正常标记构建失败。

下面是两种可行的正确写法:

写法一:修正assert逻辑

stage("Sanity check") {
    steps {
        script {
            assert version ==~ versionPattern : "构建失败,Git分支不包含有效的语义化版本号"
        }
    }
}

当version不匹配versionPattern时,assert的条件为false,会抛出断言错误,直接让当前Stage失败。

写法二:用if判断 + error()函数(推荐)

stage("Sanity check") {
    steps {
        script {
            if (!(version ==~ versionPattern)) {
                error("构建失败,Git分支不包含有效的语义化版本号")
            }
        }
    }
}

这种写法逻辑更直观,通过!(version ==~ versionPattern)明确判断“不匹配”的情况,然后调用Jenkins内置的error()函数,主动标记Stage失败并输出错误信息,这是Pipeline中终止构建的标准方式。

内容的提问来源于stack exchange,提问作者Josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 08:07:15