我很好奇是否可以在Jenkins声明性管道代码中定义String Validator插件吗?我已经有通过作业UI定义的工作设置,但我的意图是将所有内容都放入定义为的管道中:
string(name='', ......).
不幸的是,网络上的所有示例都在说明如何在我已经拥有的UI中设置验证。还是管道模型不支持的那些插件之一?
答案 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中看到该参数:
当您运行参数化管道时,将应用验证:
答案 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')
}