如何在Jenkins声明性管道代码中使用Validating String Parameter Plugin?

时间:2019-10-24 08:03:34

标签: jenkins-pipeline jenkins-plugins

我很好奇是否可以在Jenkins声明性管道代码中定义String Validator插件吗?我已经有通过作业UI定义的工作设置,但我的意图是将所有内容都放入定义为的管道中:

string(name='', ......). 

不幸的是,网络上的所有示例都在说明如何在我已经拥有的UI中设置验证。还是管道模型不支持的那些插件之一?

2 个答案:

答案 0 :(得分:3)

此插件可用作声明式管道代码中的validatingString参数。

pipeline {
    agent any

    parameters {
        validatingString(name: "test", defaultValue: "", regex: /^abc-[0-9]+$/, failedValidationMessage: "Validation failed!", description: "ABC")
    }

    stages {
        stage("Test") {
            steps {
                echo "${params.test}"
            }
        }
    }
}

请记住,添加此代码后第一次运行管道时,该参数将不会显示-将在管道的第一次运行期间添加该参数。之后,您将在管道UI中看到该参数:

enter image description here

当您运行参数化管道时,将应用验证:

enter image description here

答案 1 :(得分:0)

我不知道为什么,但是当我将每个参数包装到一个命名键中时,我能够绕过我收到的这个错误:

所以这会给你 javaposse.jobdsl.dsl.helpers.BuildParametersContext.validatingString() is applicable for argument types 错误:

            validatingString (
                "EMAIL_VALIDATED"
                'defaultEmail'
                'someregex',
                'somevalidationfailuremessage',
                'Use your email' 
            )

然而,这是有效的:

            validatingString {
                name("EMAIL_VALIDATED")
                defaultValue('defaultEmail')
                regex('someregex')
                failedValidationMessage('somevalidationfailuremessage')
                description('Use your email') 
            }