向Jenkins作业添加自定义作业属性

向Jenkins作业添加自定义作业属性,jenkins,jenkins-plugins,Jenkins,Jenkins Plugins,我想添加一个新的强制作业属性,以捕获jenkins作业中的一些自定义字段。我在插件列表中搜索了一下,但没有找到任何解决这个问题的相关插件。有什么插件可以解决这个问题吗?(注意:Extra columns插件无法解决我的用例)自由式作业可以配置为使用参数构建。见: 您可以配置参数类型(字符串、布尔值、下拉列表等),提供参数说明和默认值。字符串参数可以包括验证规则: 尽管这仅在当前参数值不符合正则表达式验证规则时发出警告,但并不阻止提交生成。但是,如果在此状态下提交,则生成将失败 快速浏览谷歌,这

我想添加一个新的强制作业属性,以捕获jenkins作业中的一些自定义字段。我在插件列表中搜索了一下,但没有找到任何解决这个问题的相关插件。有什么插件可以解决这个问题吗?(注意:Extra columns插件无法解决我的用例)

自由式作业可以配置为使用参数构建。见:

您可以配置参数类型(字符串、布尔值、下拉列表等),提供参数说明和默认值。字符串参数可以包括验证规则:

尽管这仅在当前参数值不符合正则表达式验证规则时发出警告,但并不阻止提交生成。但是,如果在此状态下提交,则生成将失败

快速浏览谷歌,这似乎不适用于管道作业,请参见上文插件页面url上的最后一条评论,来自米格尔·安格尔·费尔南德斯(Miguelángel Fernández):

如果查看类ValidatingStringParameterValue的实现,您将看到它以一种在字符串无效时中止的方式重写公共构建包装器createBuildWrapper(AbstractBuild build)的实现。这只适用于自由式作业和其他扩展AbstractBuild的作业类型。恐怕这不适用于管道作业。也许在你之前的项目中,你使用了自由式工作

自由式作业的另一种选择是,在启动任何构建步骤之前,使用“为运行准备环境”进行作业内验证:

您需要编写groovy来检查提交的参数,如果值不合适,则此时中止构建。比如:

def validateString = binding.variables.get('testParam')

if (!binding.variables.get('testParam').matches('\\d+')) {
   println "failure of parameter validation - does not match regex"
   throw new InterruptedException()
} else {
   println "Validation passed carry on with build"
}
这在管道构建上不起作用-因为插件引用:
'这个插件有一些已知的限制。例如,不完全支持管道插件。“。

但如果使用脚本化管道,则可以实现类似的功能:

stage 'start up'
if(!env.testParam.matches('\\d+')) {
    error 'failure of parameter validation - does not match regex'
}

谢谢你,埃尔沃西。这给了我们一个很好的启示。我已经使用扩展点JobProperty为作业添加了新属性。它在Freestyle项目中起了作用,我还没有测试管道。正如您所指出的,如果未设置此属性,我将不得不检查添加groovy是否会阻止生成。@syk_coder很高兴能提供帮助。最好将此标记为答案,或者添加您自己的最终代码作为答案。我使用我的插件扩展了JobProperty类并实现了构建步骤,这样我就能够添加一个新属性并进行一些验证,当验证失败时,构建失败。因此,强制要求人们提供细节。它在Freestyle项目、maven项目和多配置项目中工作。我尚未探讨如何将其扩展到管道作业。谢谢