【问题标题】:How to stop a jenkins pipeline build when tests fail - and mark it unstable测试失败时如何停止詹金斯管道构建 - 并将其标记为不稳定
【发布时间】:2020-07-20 19:15:00
【问题描述】:

所以我有一个多阶段管道构建。

其中一个阶段运行 pytest - 后续阶段获取测试结果。

因为存在测试失败,pytest 返回非零退出代码,导致 jenkins 在该步骤停止并标记构建失败(红色)

如果我不返回非零退出代码,则构建标记为不稳定,因为有失败的测试。

但是,构建并没有在那个时候停止。

现在我想做的是能够在那时停止构建,这样我就不会在测试失败后调用任何后续阶段......但没有将构建标记为失败.但是,我确实希望后期阶段仍然运行,然后将构建标记为不稳定(因为没有错误,只有测试失败)。

理想情况下,我想要一个管道命令“stopBuild(unstable)”或类似的东西。

“测试失败时构建失败”很好,因为它会停止构建 - 即不运行任何后续阶段。当我检测到测试失败时,我也想要这种行为。

检测到测试失败时的默认行为是继续运行构建。

我真的不想添加另一个阶段来阻止后续阶段运行......我当然不想在任何后续阶段中放置过滤器。

【问题讨论】:

    标签: python jenkins jenkins-pipeline


    【解决方案1】:

    你可以在后面的阶段下添加when,这样,你的测试阶段之后的所有阶段都将被跳过。

    例如:

    stage('Example') {
                when {
                    expression {currentBuild.result != 'UNSTABLE'}
                }
                steps {
                    echo 'Test passed so i\'m running'
                }
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      相关资源
      最近更新 更多