【问题标题】:Handle technical error in Jenkins Step (Jenkins pipeline)处理 Jenkins Step(Jenkins 管道)中的技术错误
【发布时间】:2017-11-29 13:01:26
【问题描述】:

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

  1. 使整个作业失败。这不是一个好主意,因为这样就需要无缘无故地重复前面的步骤(这些步骤可能包括手动步骤)。

  2. 在 e.g. 之后重试该步骤5分钟的等待。有时可以解决问题,但如果问题是由错误配置引起的,也可能导致死循环。

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

Jenkins 有对此的标准解决方案吗?

【问题讨论】:

    标签: jenkins jenkins-pipeline


    【解决方案1】:

    让整个工作失败。这不是一个好主意,因为这样就需要无缘无故地重复前面的步骤(这些步骤可能包括手动步骤)。

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

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

    您可以在 Jenkinsfileset a timeout 放弃,比如一个小时,或者您认为这项工作需要多长时间。这样你就可以重试几次,如果卡住了,你肯定会终止工作。

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

    用户交互不是一个很好的选择,尤其是当您不知道它何时会发生或者您的工作计划在晚上 10 点到凌晨 5 点之间运行时。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      • 2016-09-10
      • 2020-01-09
      • 2020-03-28
      • 2021-07-23
      • 1970-01-01
      相关资源
      最近更新 更多