我想通过接受用户的日期字段(格式为YYYY-MM-DD)来运行jenkins作业。我找到了一个用户可以输入string parameter:
的链接job('example') { parameters { stringParam('myParameterName', 'my default stringParam value', 'my description') } }
但是在字符串参数中,用户可以输入任何内容。那么如何强制用户输入日历字段,如日历字段并从日历中选择日期?
答案 0 :(得分:2)
似乎没有提供日期选择器的插件。
但您可以使用Validating String Parameter Plugin,它可以使用正则表达式来验证字符串参数。有关匹配日期值的正则表达式,请参阅Regex to validate date format dd/mm/yyyy。
Job DSL插件没有对Validating String Parameter Plugin的内置支持,但您可以使用Configure Block添加相关的配置XML。
job('example') {
configure { project ->
project / 'properties' / 'hudson.model.ParametersDefinitionProperty' / parameterDefinitions << 'hudson.plugins.validating__string__parameter.ValidatingStringParameterDefinition' {
name('DATE')
description('date in YYYY-MM-DD format')
defaultValue('2016-03-01')
regex(/\d\d\d\d-\d\d-\d\d/)
failedValidationMessage('Enter a YYYY-MM-DD date value!')
}
}
}
答案 1 :(得分:0)
我今天遇到了同样的问题,这就是我解决它的方法。
在声明式管道中,我添加了以下参数
[$class: 'DynamicReferenceParameter',
choiceType: 'ET_FORMATTED_HIDDEN_HTML',
description: '',
name: 'YOUR_PARAMETER_NAME',
omitValueField: true,
referencedParameters: '',
script: [
$class: 'GroovyScript',
fallbackScript: [classpath: [], sandbox: false, script: ''],
script: [
classpath: [],
sandbox: false,
script: 'return "<input type=\\"date\\" name=\\"value\\" value=\\"\\" />"'
]
]
]
基本上,它添加了一个 Date 类型的 HTML 输入元素,然后您可以在运行期间捕获该值。
pipeline {
agent { label "master" }
stages {
stage('Output Date') {
steps {
script {
println params.YOUR_PARAMETER_NAME
}
}
}
}
}
这是它在 Chrome 上的外观图片: HTML Date parameter
注意:您也可以使用它来添加 TextArea 类型的参数等。