如何修复 - stageResult 设置为 FAILURE 但仍然在 jenkins 中获得成功

JHO*_*ITH 5 stage jenkins-groovy jenkins-pipeline

我正在尝试创建一个非常简单的管道,它有一个阶段和一个步骤。

它使用我创建的自由式作业“build”(可以工作),但我添加了一个错误(参数项目名称有错误的值 - “test3”而不是“test”)

当我运行它时,它保持绿色并发送“成功”,尽管它失败了 - 如果我输入日志,我会看到以下内容:

Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in C:\Program Files (x86)\Jenkins\workspace\pipeline testing
[Pipeline] {
[Pipeline] stage
[Pipeline] { (1)
[Pipeline] catchError
[Pipeline] {
[Pipeline] build (Building build)
Scheduling project: build
Starting building: build #62
[Pipeline] }
ERROR: build #62 completed with status FAILURE (propagate: false to ignore)
[Pipeline] // catchError
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud)

我尝试使用新插件:catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE')

据我了解,应该为阶段发送“失败”,为整个构建发送“成功”。

stageResult 对我不起作用。

我尝试为“构建作业:”添加“propagate:true”,但也没有帮助。这是管道本身:

pipeline {
    agent any
    stages 
    {
        stage('1') 
        {
            steps 
            {
                catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE')
                {
                    build job: 'build',parameters: [string(name: 'Project_Name', value: 'test3'), 
                    string(name: 'Environment_Name', value: 'Dev_Env_1')]
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这确实是我所需要的“切中要害”功能,但它不起作用。我每次都获得成功,而不是失败并继续该项目。

它确实会继续(如果我有更多阶段),但问题是我需要它是红色的并告诉我阶段失败而不是成功的绿色。

我确实将我的jenkins版本更新为2.192,管道groovy为2.74,并将“管道:基本步骤”插件更新为2.18

编辑:最终的解决方案是更新所有其余的插件

Tec*_*ext 1

除了具有以下版本的插件之外,似乎(如聊天中讨论的那样)还有其他插件必须更新。

Pipeline Basic Steps: 2.18
Pipeline: Groovy version 2.74
Pipeline: Basic Steps version 2.18
Run Code Online (Sandbox Code Playgroud)

http://<JENKINS_HOME>/pluginManager/更新插件部分 ( )选项卡中的所有插件后Updates,问题得到解决。

  • 此问题还表明您需要至少 2.164.3 的核心版本。https://issues.jenkins-ci.org/browse/JENKINS-57826 我可以肯定地说 2.164.2 对我不起作用,但 2.176.3 对我有用。 (2认同)