如何在 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')
}
我很好奇是否可以在 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')
}