You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins声明式流水线代码中添加参数分隔符?

在Jenkins声明式流水线中通过代码实现参数分组分隔

当然可以!不用依赖只能GUI操作的Parameter Separator Plugin,咱们纯代码就能搞定参数分组分隔,而且还能自定义样式,下面给你两种实用方案:

方案1:用text参数模拟分隔线

Jenkins的text类型参数支持显示多行文本,我们可以用它来生成视觉上的分隔线,完全通过声明式代码配置:

你只需要在想要分隔的参数之间插入一个text参数,设置它的displayName为空(这样不会显示参数名),defaultValue设成分隔符样式(比如一串等号、星号),description留空即可。

修改你的流水线代码如下:

#!/bin/groovy
pipeline {
    agent { label 'ansible24' }
    parameters {
        // init script params
        string(name: 'NAME', defaultValue: 'Nightly Valid', description: '')
        string(name: 'CODE', defaultValue: 'NIGHTLY', description: '')
        string(name: 'VERSION', defaultValue: '1.0.0', description: ' ')
        string(name: 'URL', defaultValue: "https://my.gitlab.net/config-daily.git", description: '')
        
        // 代码实现的参数分隔线
        text(name: 'SEPARATOR_ADMIN_CONFIG', displayName: '', defaultValue: '==========================================', description: '')
        
        string(name: 'ADMIN_MAIL', defaultValue: 'mail@as.com', description: '')
        string(name: 'PUBLIC_DOMAIN', defaultValue: 'domain.com', description: '')
        string(name: 'PROVIDER', defaultValue: 'rhone', description: ' Define target virtualization provider. values : rhone, no-infra (read carefully use case)')
        choice(name: 'BASTION_STATE', choices: "present\nabsent", description: "Bastion state ")
    }
    stages {
        stage("Run Init script") {
            steps {
                script {
                    def filename = "${WORKSPACE}/${params.CODE}/configuration.yml"
                    def yaml = readYaml file: filename
                    // General data
                    yaml.global.name = "${params.NAME}".toString()
                    yaml.global.code = "${params.CODE}".toString()
                    yaml.global.admin_mail = "${params.ADMIN_MAIL}".toString()
                    yaml.global.public_domain = "${params.PUBLIC_DOMAIN}".toString()
                    yaml.global.provider = "${params.PROVIDER}".toString()
                    yaml.global.bastion.state = "${params.BASTION_STATE}"
                    sh "rm $filename"
                    writeYaml file: filename, data: yaml
                }
            }
        }
    }
}

方案2:带分组标题的分隔线

如果想要更清晰的分组,还可以在分隔线里加入分组标题,让参数结构一目了然:

text(name: 'SEPARATOR_ADMIN_CONFIG', displayName: '', defaultValue: '========== 管理员配置参数 ==========', description: '')

这样在参数页面会显示一条带标题的分隔线,比单纯的符号分隔更直观。

注意事项

  • 每个分隔参数的name要唯一,建议用SEPARATOR_分组名的格式命名,避免和业务参数冲突
  • 可以根据喜好自定义defaultValue的样式,比如用---、**********或者其他符号组合
  • 这种方法不需要额外安装插件,兼容所有支持声明式流水线的Jenkins版本,非常灵活

内容的提问来源于stack exchange,提问作者Juliatzin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:01:56