声明式 Jenkinsfile 不会退出,即使 shell-script 返回非零值



考虑我的声明性语法Jenkinsfile的摘录

stage("Test") {
steps {
sh "sh run-tests.sh"
}
}

即使run-tests.sh脚本以代码 1 退出,Jenkins 作业执行也会继续执行下一步。有谁知道可能导致这种情况的原因?

编辑:感谢您到目前为止的回复。我相信问题出在其他地方 - 正在执行的测试是由 Python 的nose2库启动的,如果我没记错的话,无论测试的状态如何,这个命令都会以 0 退出。我现在将遵循该线索,看看是否可以解决问题。

我找到了解决方案。我正在使用 docker-compose 运行测试,事实证明,无论我的测试脚本返回什么,docker-compose 都会返回 0。有关更多信息,请参阅此 SO 帖子。

我将--exit-code-from选项添加到我的docker-compose up命令中,现在我的 CI 作业中止,退出代码与我的 Jenkinsfile(以及我的测试脚本(相同。

最新更新