在阶段失败后继续 Jenkins 工作,同时将阶段标记为失败

Continue Jenkins job after failed stage while marking stage as failed

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

这是不可能的。如果前面的阶段通过,阶段只能 运行。

您可以做的一件会产生类似效果的事情是 运行 在同一阶段并行执行四个作业。不知道你现在用的是不是蓝海UI,但是它把一个阶段的每个工作都显示在一个单独的小圆圈里,如果一个失败了,很明显是哪个失败了(很像经典的管道 UI 您可以在其中准确判断哪个阶段失败了)。
https://jenkins.io/blog/2016/05/26/introducing-blue-ocean/, including this.

上有一些我正在谈论的图片

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

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

我认为这是一个重复的问题,但我不能 link 问题。

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

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

回答我自己的问题:
将有问题的阶段包裹在 try/catch 或 catchError

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

管道将继续,但阶段将在 GUI 中标记为 failure/red,其余作业将继续。