【问题标题】:How do I customize Jenkins pipeline stage view?如何自定义 Jenkins 流水线阶段视图?
【发布时间】:2022-10-25 19:32:11
【问题描述】:

我想自定义 Jenkins 流水线阶段。
在下面的屏幕截图中,我不希望步骤 Approve K8s Dev DeploymentCreate and Deploy to k8s Dev Environment 显示在管道阶段视图中,因为我正在根据我的分支名称跳过这些步骤。下面是当前的输出。

我希望在没有Approve K8s Dev DeploymentCreate and Deploy to k8s Dev Environment 的情况下看到如下所示的管道阶段视图。我想要我的预期输出如下。我错过了任何插件吗?我怎样才能做到这一点?

下面是我的常规代码:

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}")
            }
        }
    }
}

【问题讨论】:

    标签: jenkins jenkins-pipeline jenkins-groovy


    【解决方案1】:

    当您使舞台内容有条件地执行时(如您的示例中所示),无论是否满足条件,舞台都会显示出来。如果要在不满足条件时隐藏舞台,唯一的选择是将舞台放在条件内。该插件的作者对此提出了警告:

    动态阶段:一般来说,如果您想可视化动态变化的阶段,请以执行阶段内容为条件,而不是以包含阶段为条件**阶段视图可以处理您要附加其他阶段的有限情况子集,但是基于单元的视图与不断变化的舞台结构不匹配 (来自https://plugins.jenkins.io/pipeline-stage-view

    不利的一面是,在大多数情况下,当阶段数量发生变化时,会重置整个阶段视图。因此,每次您的构建更改分支时,阶段视图中的所有先前构建都消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多