更好地显示声明性管道中跳过的阶段

时间:2017-03-23 09:45:49

标签: jenkins jenkins-pipeline

我正在考虑将我们的脚本化管道移动到声明性管道。

我使用when关键字跳过阶段

stage('test') {       
     // Only do anything if we are on the master branch
     when { branch 'master' }
     //...
}

这样可行,但跳过的舞台显示为绿色。如果它在管道概述中显示为灰色,我更愿意。有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:0)

正如您在评论中提到的,我建议您在使用管道时使用Jenkins Blue Ocean

它为您的管道项目提供了更现代和用户友好的视图。甚至管道本身也以更方便的方式显示。

答案 1 :(得分:0)

如果舞台对您来说是绿色的,则它可能实际上仍在运行。跳过的阶段should look like this in the Jenkins classic stage view。考虑下面的代码示例,该示例分为三个阶段,其中的中间阶段被when指令有条件地跳过了。

pipeline {
    agent any
    stages {
        stage('Always run 1') {
            steps { echo "hello world" }
        }
        stage('Conditionally run') {
            when {
                expression { return false }
            }
            steps { echo "doesn't get printed" }
        }
        stage("Always run 2") {
            steps { echo "hello world again" }
        }
    }
}

这应该在您的构建日志中生成以下行

Stage "Conditionally run" skipped due to when conditional

这个问题的另一个回答者提到了《蓝色海洋》,它肯定可以很好地展示舞台视图。 Here is an image of how a skipped stage looks in the Blue Ocean stage view。请注意,Blue Ocean是一个UI,无论选择使用哪个UI,您作业的基础管道代码都将相同。