2016-08-04 55 views
0

我正在使用ez-template创建模板并根据该模板创建其他作业。但是,显然,只有在您手动单击保存或应用按钮时才应用该模板。我用下面的詹金斯作业DSL代码来尝试实现这一目标:如何通过Groovy中的Jenkins API执行jenkins作业保存事件?

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

在创建作业后,控制台输出显示什么?你使用什么版本的Job DSL插件?我无法在文档中找到该属性'templateImplementationProperty' – SevenEleven

回答

1

作业DSL使用两个Jenkins API方法创建或更新作业,Jenkins#createProjectFromXML(...)source)和AbstractItem#updateByXml(...)source)。第一种方法导致ItemListener#onCreate(...)事件,第二种导致SavableListener#onChange(...)事件。

EZ模板插件仅对ItemListener#onUpdated(...)source)做出反应。

如果您使用的是作业DSL,您不一定需要EZ模板插件,因为作业DSL提供了它自己的模板机制,请参见https://jenkinsci.github.io/job-dsl-plugin/#path/job-using

job('job_name') { 
    using('template') 
} 

如果你仍然想使用EZ模板pluign,我建议到文件的EZ模板插件也对上述两个事件反应的功能要求。

链接API文档:

相关问题