在脚本化管道中是否有任何方法可以将某个阶段标记为不稳定,但仅将该阶段显示为不稳定,而不在输出中将每个阶段标记为不稳定?
我可以做这样的事情:
node()
{
stage("Stage1")
{
// do work (passes)
}
stage("Stage2")
{
// something went wrong, but it isn't catastrophic...
currentBuild.result = 'UNSTABLE'
}
stage("Stage3")
{
// keep going...
}
}
但是当我运行这个时,詹金斯将一切标记为不稳定......但如果可能的话,我希望第一个和最后一个阶段显示绿色,而只有有问题的阶段显示黄色。
如果整个管道被标记为不稳定也没关系,但如果可能的话,让后期阶段超越它并设置最终结果也可能会更好。
现在这是可能的:
pipeline {
agent any
stages {
stage('1') {
steps {
sh 'exit 0'
}
}
stage('2') {
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'UNSTABLE') {
sh "exit 1"
}
}
}
stage('3') {
steps {
sh 'exit 0'
}
}
}
}
在上面的示例中,所有阶段都将执行,管道将成功,但阶段 2 将显示为不稳定。我在示例中使用声明性管道,但它在脚本化管道中应该具有相同的工作方式。
正如您可能已经猜到的,您可以自由更改buildResult
and stageResult
任意组合。您甚至可以使构建失败并继续执行管道。
只需确保您的 Jenkins 是最新的,因为这是一个相当新的功能。升级受错误影响的所有插件JENKINS-39203 https://issues.jenkins-ci.org/browse/JENKINS-39203, 例如:
-
管道图分析 https://plugins.jenkins.io/pipeline-graph-analysis插件(至少版本 1.10 将单个阶段标记为“不稳定”)
-
管道基本步骤 https://plugins.jenkins.io/workflow-basic-steps/插件(至少版本 2.18 在 catchError 中设置 stageResult)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)