如何自定义Jenkins管道阶段视图?

axkjgtzd  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(423)

我想定制Jenkins管道阶段。
在下面的屏幕截图中,我不希望步骤Approve K8s Dev DeploymentCreate and Deploy to k8s Dev Environment显示在管道阶段视图中,因为我根据分支名称跳过了这些步骤。

我希望流水线阶段视图看起来像下面的东西,没有Approve K8s Dev DeploymentCreate and Deploy to k8s Dev Environment。我希望我的预期输出如下。我错过了任何插件吗?我如何才能实现这一点?

下面是我的groovy代码:

stages{
    stage('Checkout') {
        steps{
            checkout scm
        }
    }

    // Maven Build and Unit Tests Dev
    stage('Build and Unit Tests') {
        steps{
            build(configuration)
        }
    }

    // SonarQube Analysis
    stage('SonarQube analysis') {
        steps{
            sonarQubeGating(configuration)
        }
    }

    // Build Docker Image and Push to Artifactory
    stage('Build Docker Image and Push to Artifactory') {
        steps{
            artifactoryImagePush(configuration)
        }
    }

    // Approve DEV Deployment
    stage('Approve K8s Dev Deployment') {
        when {
            anyOf {
                expression {
                    return (env.GIT_BRANCH.startsWith('master') || env.GIT_BRANCH.startsWith('hotfix-'))
                }
            }
        }
        steps {
            approveDeployment()
        }
    }

    // Create and Deploy to Dev Environment
    stage('Create and Deploy to k8s Dev Environment') {
        when {
            anyOf {
                expression {
                    return (env.GIT_BRANCH.startsWith('master') || env.GIT_BRANCH.startsWith('hotfix-'))
                }
            }
        }
        steps {
            withCredentials([string(credentialsId: "$env.K8S_DEV_NS_TOKEN", variable: 'DEV_TOKEN')]) {
                kubernetesDeploy(hcEnv: 'dev', hcToken: "${DEV_TOKEN}")
            }
        }
    }
}
zfciruhq

zfciruhq1#

当您有条件地执行阶段内容时(如您的示例所示),无论是否满足条件,阶段都将显示。如果您想在条件不满足时隐藏阶段,唯一的选择是将阶段放在条件中。但插件的作者警告您不要这样做:
动态阶段:一般而言,如果您想要以动态方式显示变更的阶段,请将执行阶段内容设为条件,而非将包含阶段设为条件**“阶段”检视可以行程您附加其他阶段的有限案例子集,但以储存格为基础的检视与变更的阶段结构不相符(从https://plugins.jenkins.io/pipeline-stage-view开始)
缺点是,在大多数情况下,当阶段数量发生变化时,整个阶段视图都会重置。因此,每次您的构建更改分支时,阶段视图中所有以前的构建都会消失。

相关问题