2016-08-04 67 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文檔: