如何修复 - stageResult 设置为 FAILURE 但仍然在 jenkins 中获得成功
how to fix - stageResult set to FAILURE but still get success in jenkins
我正在尝试创建一个非常简单的管道,
它有一个阶段和一个步骤。
它使用我创建的作业 'build' 作为自由泳(有效)但我添加了一个错误(参数项目名称的值错误 - 'test3' 而不是 'test')
当我 运行 它时,它保持绿色并发送 "success" 尽管它失败了 - 如果我进入日志我会看到这个:
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
我尝试使用新插件:
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE')
据我了解,假设为阶段发送 "FAILURE",为整个构建发送 "SUCCESS"。
stageResult 对我不起作用。
我尝试为 "build job:" 添加 "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')]
}
}
}
}
}
这确实是我需要的 "on the point" 功能,但它无法正常工作。
我每次都获得成功,而不是失败并继续该项目。
它确实会继续(如果我有更多阶段)但问题是我需要它是红色的并告诉我阶段失败而不是绿色成功。
我确实将我的 jenkins 版本更新到了 2.192
管道 groovy 是 2.74
和 "pipeline: basic steps" 插件到 2.18
编辑:最后的解决方案是更新所有其他插件
除了以下版本的插件外,似乎(如聊天中所讨论的)还有其他插件需要更新。
Pipeline Basic Steps: 2.18
Pipeline: Groovy version 2.74
Pipeline: Basic Steps version 2.18
更新插件部分 (http://<JENKINS_HOME>/pluginManager/
) Updates
选项卡中的所有插件后,问题已解决。
我正在尝试创建一个非常简单的管道, 它有一个阶段和一个步骤。
它使用我创建的作业 'build' 作为自由泳(有效)但我添加了一个错误(参数项目名称的值错误 - 'test3' 而不是 'test')
当我 运行 它时,它保持绿色并发送 "success" 尽管它失败了 - 如果我进入日志我会看到这个:
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
我尝试使用新插件: catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE')
据我了解,假设为阶段发送 "FAILURE",为整个构建发送 "SUCCESS"。
stageResult 对我不起作用。
我尝试为 "build job:" 添加 "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')]
}
}
}
}
}
这确实是我需要的 "on the point" 功能,但它无法正常工作。 我每次都获得成功,而不是失败并继续该项目。
它确实会继续(如果我有更多阶段)但问题是我需要它是红色的并告诉我阶段失败而不是绿色成功。
我确实将我的 jenkins 版本更新到了 2.192 管道 groovy 是 2.74 和 "pipeline: basic steps" 插件到 2.18
编辑:最后的解决方案是更新所有其他插件
除了以下版本的插件外,似乎(如聊天中所讨论的)还有其他插件需要更新。
Pipeline Basic Steps: 2.18
Pipeline: Groovy version 2.74
Pipeline: Basic Steps version 2.18
更新插件部分 (http://<JENKINS_HOME>/pluginManager/
) Updates
选项卡中的所有插件后,问题已解决。