我正在使用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。唯一的例外是当我为一般构建提供不稳定状态时,所有并行步骤也变为不稳定。下面是一个例子:
我希望每个并行步骤都有自己的结果,这对于调试测试结果非常有用,因为我需要在不同的机器/设备中并行运行测试。
这是蓝海问题还是我在这里做错了什么?