我正在使用 Jenkins Pipeline 并行运行一些测试,我注意到 Blue Ocean 的工作结果表现得很奇怪。我声明了一个带有变量的全局类,以根据并行作业结果处理当前构建状态。
它可以工作,但是在 Blue Ocean UI 中似乎没有正确设置并行步骤状态。
我在下面准备了一个示例来说明发生了什么。管道定义为:
pipeline {
stages {
stage('Tests') {
steps {
script {
parallel(
a: {
echo "This is branch a"
manager.build.@result = hudson.model.Result.SUCCESS
},
b: {
echo "This is branch b"
manager.build.@result = hudson.model.Result.ABORTED
},
c: {
echo "This is branch c"
manager.build.@result = hudson.model.Result.UNSTABLE
},
d: {
echo "This is branch d"
manager.build.@result = hudson.model.Result.FAILURE
try {sh "exit 1"}catch(e){echo 'failure'}
}
)
manager.build.@result = hudson.model.Result.UNSTABLE
}
}
}
}
}
最后一行正确地更改了构建结果(无论我给它什么值 - SUCCESS、FAILURE、UNSTABLE 或 ABORTED)。
但是,每个并行步骤的结果始终是成功的。唯一的例外是当我将一般构建的状态设置为 UNSTABLE 时,所有并行步骤也会变为 UNSTABLE。下面是一个插图:
我希望每个并行步骤都有自己的结果,这对于调试测试结果非常有用,因为我需要在不同的机器/设备上并行运行测试。
是蓝海问题还是我在这里做错了什么?