我想定制Jenkins管道阶段。
在下面的屏幕截图中,我不希望步骤Approve K8s Dev Deployment
和Create and Deploy to k8s Dev Environment
显示在管道阶段视图中,因为我根据分支名称跳过了这些步骤。
我希望流水线阶段视图看起来像下面的东西,没有Approve K8s Dev Deployment
和Create 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}")
}
}
}
}
1条答案
按热度按时间zfciruhq1#
当您有条件地执行阶段内容时(如您的示例所示),无论是否满足条件,阶段都将显示。如果您想在条件不满足时隐藏阶段,唯一的选择是将阶段放在条件中。但插件的作者警告您不要这样做:
动态阶段:一般而言,如果您想要以动态方式显示变更的阶段,请将执行阶段内容设为条件,而非将包含阶段设为条件**“阶段”检视可以行程您附加其他阶段的有限案例子集,但以储存格为基础的检视与变更的阶段结构不相符(从https://plugins.jenkins.io/pipeline-stage-view开始)
缺点是,在大多数情况下,当阶段数量发生变化时,整个阶段视图都会重置。因此,每次您的构建更改分支时,阶段视图中所有以前的构建都会消失。