带有声明性管道的 Jenkins 参数的分隔符



我的声明式 jenkins 管道中有 50 个参数,能够使用分隔符创建组会很棒。

我看到了这个插件:https://wiki.jenkins.io/display/JENKINS/Parameter+Separator+Plugin

但它只使用 GUI 来做,我需要在代码中声明它,可以吗? 编辑:这是代码: 我只放了 8 个字段更短,但 8 或 50 个,应该是一样的

#!/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: '')
// What I need is programmatically add a separator like:
// addSeparator()
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: "presentnabsent", 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
}
}
}
}
}

我会尝试直接操作 Groovy 中的参数数组。

一些例子:

http://grails.asia/groovy-array-manipulation-examples

使用管道,无论如何您都在使用时髦的。

最新更新