如何在 Jenkins 声明性管道代码中使用验证字符串参数插件?

How to use Validating String Parameter Plugin in the Jenkins declarative pipeline code?

我很好奇是否可以在 Jenkins 声明性管道代码中定义字符串验证器插件?我已经通过作业 UI 定义了一个工作设置,但我的目的是将所有内容都放入定义为:

的管道中
string(name='', ......). 

不幸的是,网络上的所有示例都在解释如何在我已有的 UI 中设置验证。或者它是管道模型中不支持的那些插件之一?

此插件可用作声明性管道代码中的 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:

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

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

所以这会给你 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') 
            }