Jenkins以Finished结束:成功,即使Python以sys.exit(-1)退出

Jenkins以Finished结束:成功,即使Python以sys.exit(-1)退出,python,jenkins,Python,Jenkins,Python代码: print "Initiating myPy..." ... try: opts, args = getopt.getopt(sys.argv[1:], "d:", ["dolphins="]) except getopt.GetoptError: print '\tUsage: python myPy.py -d <foo>' sys.exit(-1) 服务器响应: 启动myPy Usage: python myPy.py

Python代码:

print "Initiating myPy..."
...
try:
    opts, args = getopt.getopt(sys.argv[1:], "d:", ["dolphins="])
except getopt.GetoptError:
    print '\tUsage: python myPy.py -d <foo>'
    sys.exit(-1)   
服务器响应:

启动myPy

   Usage: python myPy.py -d <foo>
完成:成功

我从几个来源得到的印象是,任何非零系统退出代码都应该导致构建失败。为什么我的情况不是这样?它是否与构建配置设置有关

看起来您是从bash脚本运行python脚本,jenkins在运行bash脚本时使用了什么标志/bin/sh sh13331323.sh-xe?e标志表示失败时退出,是否存在? 是否尝试添加退出$?在python脚本运行之后。 看起来您是从bash脚本运行python脚本,jenkins在运行bash脚本时使用了什么标志/bin/sh sh13331323.sh-xe?e标志表示失败时退出,是否存在? 是否尝试添加退出$?在python脚本运行之后。
只是先检查一下——是直接调用python脚本,还是在包装器脚本中调用?也就是说,python返回的代码会到达Jenkins吗?好问题。目前,它在bash构建脚本中是这样调用的:python myPy.py-d$DolphinVar,所以我不确定Jenkins是否看到了它。EDIT:我没有先检查-e bash blagJust-是直接调用python脚本,还是在包装器脚本中调用?也就是说,python返回的代码会到达Jenkins吗?好问题。目前,它在bash构建脚本中被这样调用:python myPy.py-d$DolphinVar,所以我不确定Jenkins是否看到了它。EDIT:我错过了-e bash blagy你真是个天才!我错过了-e旗!非常感谢。你真是个天才!我错过了-e旗!非常感谢。