Я использую настраиваемый плагин для нашего собственного корпоративного приложения в Jenkins. Преобразуя все существующие задания Jenkins в сценарии DSL, это означает, что мне нужно использовать блок configure для включения задач, которые запускаются с помощью этого плагина. Я думал, что правильно записал код DSL, потому что, когда я ввожу его в http://job-dsl.herokuapp.com/, он генерирует XML, который идеально соответствует моему текущему config.xml для задания. Однако, когда я запускаю DSL-скрипт в Jenkins и сгенерирую задание, у него отсутствует критический блок XML, и я не могу понять, почему.Jenkins dsl configure сгенерированный блок XML не соответствует API
Код конфигурирования блока Я в том числе в скрипте:
configure { project ->
project/'builders' << 'org.mycompany.myapp.jenkins.plugin.Builder' {
modelOption'modelDownload'
appOption'appZip'
execParameters'-debug'
taskPath 'UnitTests/All.task'
project/'builders'/'tasks' << 'org.mycompany.myapp.jenkins.plugin.Builder_-myappTask' {
taskPath 'UnitTests/All.task'
project/'builders'/'tasks'/'parameters'
}
modelPath ''
nexusUrl ''
nexusUser ''
nexusPass ''
myappZipName 'org.mycompany.myapp-win32.win32.x86_64.zip'
}
overwriteMyApp ''
}
И config.xml задания генерируются показывает это:
<org.mycompany.myapp.jenkins.plugin.Builder plugin="[email protected]">
<modelOption>modelDownload</modelOption>
<appOption>appZip</appOption>
<modelPath/>
<nexusUrl/>
<nexusUser/>
<nexusPass/>
<myappZipName>org.mycompany.myapp-win32.win32.x86_64.zip</myappZipName>
<execParameters>-debug</execParameters>
<overwritemyappa>false</overwritemyapp>
</org.mycompany.myapp.jenkins.plugin.Builder>
Однако XML мне нужно в конце этого есть, и который соответствует тому, что показывает мне herokuapp из моего блока конфигурации, является:
<org.mycompany.myapp.jenkins.plugin.Builder plugin="[email protected]">
<modelOption>modelDownload</modelOption>
<appOption>appZip</appOption>
<tasks>
<org.mycompany.myapp.jenkins.plugin.Builder_-myappTask>
<taskPath>UnitTests\All.task</taskPath>
<parameters/>
</org.mycompany.myapp.jenkins.plugin.Builder_-myappTask>
</tasks>
<modelPath/>
<nexusUrl/>
<nexusUser/>
<nexusPass/>
<myappZipName>org.mycompany.myapp-win32.win32.x86_64.zip</myappZipName>
<execParameters>-debug</execParameters>
<overwritemyapp>false</overwritemyapp>
</org.mycompany.myapp.jenkins.plugin.Builder>
Поскольку это мои первые несколько попыток использования блока configure, я уверен, что смогу сделать это гораздо более аккуратным способом, чем то, что я делаю. Но тестирование на игровой площадке указывает на то, что это должно работать, но задача, которую нужно запустить, не учитывается в генерируемом XML, и я не могу понять, почему.