当舞台不稳定时停止管道

时间:2016-01-21 00:04:01

标签: jenkins-workflow

我有一个使用工作流插件创建的Jenkins构建管道。在开始时,管道在docker容器内部运行gulp构建,然后使用以下代码存档测试结果

step([$class: 'JUnitResultArchiver', testResults: 'build/test-results/*.xml'])

在以下步骤中,我将工件打包并将它们发送到二进制存储库。

当单元测试未通过时,Jenkins了解构建不稳定并将其标记为黄色。然而,它仍然继续在管道中的后续步骤。当单元测试失败时,有没有办法让管道停止?

2 个答案:

答案 0 :(得分:8)

JUnitResultArchiver 会在构建不稳定时导致此条件为真:

currentBuild.result != null

如果我没记错的话,它会将其设置为不稳定,但这足以检查它是否与null不同。

所以你可以做类似

的事情
step([$class: 'JUnitResultArchiver', testResults: 'build/test-results/*.xml'])
if (currentBuild.result == null) {
    //contintue with your pipeline
} else {
    //notify that the build is unstable. //or just do nothing
}

答案 1 :(得分:0)

詹金斯方面无所事事,但是在古尔普方面。对gulp CLI的调用需要返回正确的错误值才能使sh步骤失败。 Jenkins只是解释了shell返回的内容,因此你需要让Gulp在测试失败时返回失败(参见this blog post,它似乎完全达到了这一点)。