【问题标题】:Continue Jenkins job after failed stage while marking stage as failed在失败阶段后继续 Jenkins 工作,同时将阶段标记为失败
【发布时间】:2017-07-20 18:58:30
【问题描述】:

我目前有单独的性能测试作为 4 个 jenkins 阶段运行。目前,如果性能测试失败,则整个管道都会失败。我可以通过包装一个 try catch 来缓解这种情况,这将让我继续,但当它实际失败时会将阶段标记为成功。 我想为失败的阶段获得一个红色的失败框,并允许其他阶段运行。 我不担心 Jenkins 是否将整个作业标记为失败,只要突出显示失败的阶段并且不会阻止其他阶段运行。

【问题讨论】:

    标签: jenkins jenkins-pipeline jobs stage


    【解决方案1】:

    看看这里Show a Jenkins pipeline stage as failed without failing the whole job

    请注意,您可以选择是否将整个作业标记为失败,但最重要的是,在标记那些失败时,所有阶段都已完成。

    我认为这是一个重复的问题,但我无法链接这些问题。

    【讨论】:

      【解决方案2】:

      这是不可能的。只有在前面的阶段通过时,阶段才能运行。

      您可以做的一件会产生类似效果的事情是在同一阶段并行运行四个作业。我不知道你目前是否使用蓝海 UI,但它在一个单独的小圆圈中将每个作业显示在一个阶段,如果一个失败,很明显哪个失败了(很像经典的管道 UI,你可以准确判断哪个阶段失败)。
      有一些我在https://jenkins.io/blog/2016/05/26/introducing-blue-ocean/ 谈论的图片,包括this

      【讨论】:

        【解决方案3】:

        要忽略测试阶段失败,我们可以在 jenkins 的 maven 目标下添加以下参数

        clean install -PDEV Dmaven.test.failure.ignore=true
        

        【讨论】:

          【解决方案4】:

          回答我自己的问题:
          将相关阶段包装在 try/catch 或 catchError 中

          catchError{
            stage("stage"){
              // command
            }
          }
          

          管道将继续,但该阶段将在 GUI 中标记为失败/红色,并且作业的其余部分将继续。

          【讨论】:

            猜你喜欢
            • 2023-01-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-27
            • 2022-08-09
            • 2017-08-08
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多