当Jenthon中的任何内容失败时,Jenkins中的触发器失败

时间:2017-01-18 08:01:23

标签: python jenkins

我在执行shell区域的Jenkins构建阶段运行了一个python脚本。

问题是如果脚本失败,我仍然认为构建成功。我确实检查过和python使用的东西类似于shell命令的返回代码(你用$调用的那个?),虽然我无法弄清楚调用哪个地方有"任何" python脚本中的失败触发返回代码

import sys

..... code here

....functions

sys.exit(-1)

我需要返回sys.exit(-1),但是你把它放在python代码中的哪里?到目前为止,我只能使用try块处理它,在异常部分我放了sys.exit(-1),但是这会添加很多代码,因为我在脚本中有很多函数。

我是否可以使用全局位置来触发失败,因此Jenkins作业失败了?

2 个答案:

答案 0 :(得分:1)

def main():
    try:
        do_the_work()
        sys.exit(0) # success
    except:
        # insert code to log and debug the problem
        sys.exit(-1)

单词:如果do_the_work返回,sys.exit(0)。如果do_the_work引发了它本身无法处理的任何异常,sys.exit(-1)。在do_the_work内,除了成功之外不要返回。在任何不可恢复的错误状态上引发异常,例如

class DoSomethingError( exception)
...

ok = do_something()
if not ok:
    print ("do_something error return")
    raise DoSomethingError

日志记录和调试:搜索堆栈溢出以获取有关如何从捕获的异常中获取和记录错误回溯的python答案。

答案 1 :(得分:0)