处理Jenkins Step(Jenkins管道)中的技术错误

时间:2017-11-29 13:01:27

标签: jenkins jenkins-pipeline

步骤调用shell脚本(例如,在测试服务器上安装工件),并且由于技术原因而失败(网络不起作用,数据库崩溃等)。可能的反应:

  1. 整个工作都失败了。不是一个好主意,因为那时需要重复前面的步骤,没有充分的理由(这些步骤可以包括手动步骤)。

  2. 重试以后的步骤等了5分钟。有时可以解决问题,但如果问题是由配置错误引起的,也可能导致无限循环。

  3. 询问用户是继续还是中止。最灵活的方法,但需要(意外)使用互动。

  4. Jenkins是否为此提供标准解决方案?

1 个答案:

答案 0 :(得分:2)

  

整个工作都失败了。不是一个好主意,因为那时需要重复前面的步骤没有充分的理由(这些步骤可以包括手动的)。

这取决于您如何对问题的严重程度进行排名。我个人会说,如果您有任何类型的构建问题,请记录,失败并向需要知道的人发送通知。但如果你觉得这样做太过分了,你可能想尝试其他的东西。

  

例如,重试步骤等了5分钟。有时可以解决问题,但如果问题是由错误配置引起的,也可能导致无限循环。

你可以Jenkinsfile /-\d+/放弃,比如一小时,或者你认为这份工作应该花多长时间。通过这种方式,您可以重试几次,如果它被卡住,您可以保证终止工作。

  

询问用户是继续还是中止。最灵活的方法,但需要(意外)使用互动。

用户互动不是一个很好的选择,特别是如果你不知道什么时候会发生,或者你的工作安排在晚上10点到凌晨5点之间运行。

在所有选项中,听起来最好你可能是第二个;重试几次,如果这不起作用,则记录发生的事情,失败并通知某人。这应该涵盖你的零星技术问题。此外,如果重试不起作用,它可以表明存在更大的问题需要解决。