我目前正在使用 JenkinscatchError来捕获某个阶段中是否发生错误,如果是,则跳到下一个阶段。
我想要展示的是,如果某个阶段发现错误,则在 Jenkins 中显示为红色(失败),即使该阶段已跳到下一个阶段。
这是 Jenkins 管道阶段的编码方式,以捕获脚本失败时的错误:
stage('test_run') {
steps {
catchError {
sh """#!/bin/bash -l
***
npm run test:run:reporter
"""
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在 StackOverflow 中找到了这个解决方案: Jenkins: Ignore failure in pipeline build step
这个解决方案有效,但在 Jenkins 的运行中,失败的阶段是呈现Green(又名Success)。
Jenkins 运行表明它失败了:
以下阶段实际上是失败的原因,并且在捕获错误时被跳过,但是,此阶段显示绿色(成功)并且更愿意将其呈现为红色(失败):
最后的后期操作显示为黄色(不稳定),通常显示为绿色(成功):
感谢您的阅读,始终感谢您的帮助。
您可以使用
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
Add your commands
}
Run Code Online (Sandbox Code Playgroud)
添加您想要为构建和阶段结果设置的任何结果。