在阶段失败后继续 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,其余作业将继续。
我目前有单独的 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,其余作业将继续。