如何在Jenkins管道中设置并行步骤结果?

时间:2018-03-06 21:49:04

标签: jenkins jenkins-pipeline jenkins-blueocean

我正在使用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。唯一的例外是当我为一般构建提供不稳定状态时,所有并行步骤也变为不稳定。下面是一个例子:

UI error representation

我希望每个并行步骤都有自己的结果,这对于调试测试结果非常有用,因为我需要在不同的机器/设备中并行运行测试。

这是蓝海问题还是我在这里做错了什么?

0 个答案:

没有答案