一尘不染

如果步骤不稳定,Jenkins管道将失败

jenkins

当前,当maven-job不稳定(黄色)时,我的管道失败(红色)。

node {
    stage 'Unit/SQL-Tests'
    parallel (
       phase1: { build 'Unit-Tests' }, // maven
       phase2: { build 'SQL-Tests' } // shell
    )
    stage 'Integration-Tests'
    build 'Integration-Tests' // maven
}

在此示例中,作业单元测试的结果不稳定,但在管道中显示为失败。

如何更改Jobs / Pipeline /Jenkins,使(1)管道步骤不稳定而不是失败,以及(2)管道状态不稳定而不是失败。

我尝试添加MAVEN_OPTS参数-Dmaven.test.failure.ignore=true,但没有解决问题。我不确定如何包装build'Unit-Test'成可以捕获和处理结果的逻辑。

使用这种逻辑添加子管道并不能解决问题,因为没有选项可以从Subversion检出(该选项在常规Maven作业中可用)。如果可能的话,我不想使用命令行结帐。


阅读 260

收藏
2020-07-25

共1个答案

一尘不染

无论步骤是不稳定还是失败,脚本中的最终构建结果都将失败。

您可以在默认情况下将传播添加为false,以避免失败。

def result = build job: 'test', propagate: false

在流程的最后,您可以根据从“结果”变量中获得的结果来判断最终结果。

例如

currentBuild.result='UNSTABLE'

这是一个详细的示例, 如何在Pipeline中设置当前构建结果

2020-07-25