【发布时间】:2019-03-24 09:01:26
【问题描述】:
考虑一下我的声明性语法 Jenkinsfile 中的这段摘录
stage("Test") {
steps {
sh "sh run-tests.sh"
}
}
即使run-tests.sh 脚本以代码 1 退出,Jenkins 作业仍会继续执行下一步。有谁知道可能是什么原因造成的?
编辑:感谢到目前为止的回复。我相信问题出在其他地方 - 正在执行的测试是由 Python 的 nose2 库启动的,如果我没有弄错,不管测试的状态如何,这个命令都会以 0 退出。我现在将遵循该线索,看看是否可以解决问题。
【问题讨论】:
-
你嵌套
sh有什么原因吗?你应该可以只做sh "run-tests.sh"。第一个sh是一个 Jenkins 管道函数,如果您的返回状态为非零,它应该总是失败,第二个sh将取决于您的操作系统和配置。 -
步骤应该是:: sh './run-tests.sh' 并且shell脚本应该是可执行的