我使用ez-template创建模板并根据该模板创建其他作业。但是,显然,只有在手动单击“保存”或“应用”按钮时才会应用模板。我使用了以下Jenkins Job DSL代码来尝试实现此目的:
job("job_name") {
properties {
templateImplementationProperty {
exclusions(['ez-templates', 'job-params', 'disabled', 'description'])
syncAssignedLabel(true)
syncBuildTriggers(true)
syncDescription(false)
syncDisabled(false)
syncMatrixAxis(true)
syncOwnership(true)
syncScm(true)
syncSecurity(true)
templateJobName('template')
}
}
}
这可以很好地为该作业创建XML,但它永远不会被应用/保存/提交。如何通过Jenkins Job DSL API实现此功能?
答案 0 :(得分:1)
Job DSL使用两种Jenkins API方法来创建或更新作业Jenkins#createProjectFromXML(...)
(source)和AbstractItem#updateByXml(...)
(source)。第一种方法导致ItemListener#onCreate(...)
事件,第二种方法导致SavableListener#onChange(...)
事件。
EZ模板插件仅对ItemListener#onUpdated(...)
(source)做出反应。
如果您使用的是Job DSL,则不一定需要EZ模板插件,因为Job DSL提供了自己的模板机制,请参阅https://jenkinsci.github.io/job-dsl-plugin/#path/job-using。
job('job_name') {
using('template')
}
如果您仍想使用EZ模板插件,我建议提交EZ模板插件的功能请求,以便对上述两个事件做出反应。
链接API文档:
答案 1 :(得分:0)
ez-templates 1.3.0
中改进了此行为