0

目前我希望向 groovy 管道添加一个多行文本参数。如果文本参数没有左列对齐(参数前没有空格),则将空格注入文本参数列表。

关于如何解决这个问题的任何想法?

这是代码

#!/usr/bin/env groovy

node {

    def startTime = new Date()
    println "Build start time : " + startTime

    // Load system parameters
    def projectProperties = [
    [$class: 'EnvInjectJobProperty', info: [loadFilesFromMaster: false, secureGroovyScript: [classpath: [], sandbox: false, script: '']], keepBuildVariables: true, keepJenkinsSystemVariables: true, on: true]
    ]

    // Set project parameters  
    projectProperties.add(parameters([
        string(name: 'infraRepo', description: 'Repo Name', defaultValue: 'my-infrastructure' ),
        string(name: 'infraBranch', description: 'Repo Branch', defaultValue: 'develop' ),
        string(name: 'projectName', description: 'Project name', defaultValue: 'think-more' ),
        // Text field not left side aligned now whitespace will be injected
        text(name: 'ecrRepoAndVersion', description: 'ECR Docker name and version number',
        defaultValue:'''address=3.0.1
        address-details=3.0.1
        auth=3.2.1'''),
        choice(name: 'clusterName', description: 'Ecs cluster name', choices: '---Select---\nblue-ci\ngreen-ci', defaultValue: '---Select---'),
]))

    properties(projectProperties)

    // Print system variables
    sh 'env | sort'
}

这是执行此管道后 Jenkins Job UI 的外观图像。请注意 ecrRepoAndVersion 字段中的空格。

詹金斯用户界面视图

4

2 回答 2

0

谢谢 - 效果很好。

text(name: 'ecrRepoAndVersion', description: 'ECR Docker name and 
version number',defaultValue:"""address=3.0.7-RC\n
address-details=3.0.3-RC\nauth=3.2.3-RC""")
于 2018-04-25T23:51:04.123 回答
0

抛开对这个逻辑的需求,我会通过加入项目列表而不是逐字规范来增加一些可读性和易于维护:

def ecrRepoAndVersionItemsDefault = [
    "address=3.0.7-RC",
    "address-details=3.0.3-RC",
    "auth=3.2.3-RC",
]
...
// then construct an ArrayList
def jobParams = []
jobParams << ...
...
jobParams << text(
    name: 'ecrRepoAndVersion',
    description: 'ECR Docker name and version number',      
    defaultValue: ecrRepoAndVersionItemsDefault.join('\n')
)
// then add the properties
...
projectProperties.add(parameters(jobParams))
...
properties(projectProperties)
... 
// etc.
于 2018-08-05T14:41:39.080 回答