Использование job-dsl-plugin Я пытаюсь настроить сценарий для достаточного количества заданий Jenkins, которые ранее были настроены вручную.Использование Jenkins Job-DSL Настроить блок для размещения пользовательских шагов в определенных положениях
Один из достоинств этих заданий состоит из нескольких шагов, включая пару, в которой используется плагин XShell, это напрямую не поддерживается job-dsl. Однако я мог бы обойти это, используя специальный блок «configure».
Использование «Работа DSL площадка» в http://job-dsl.herokuapp.com/ я добралась до:
job {
name 'my-job'
jdk('JDK-17')
steps {
configure { node ->
node/builders {
'hudson.plugins.xshell.XShellBuilder'(plugin: '[email protected]') {
commandLine('run-me-as-the-first-build-step')
executeFromWorkingDir('true')
}
}
}
maven {
mavenInstallation('Default')
goals('clean')
goals('verify')
property('prop1', 'value1')
property('user.timezone', 'UTC')
mavenOpts('--batch-mode')
}
maven {
mavenInstallation('Default')
goals('deploy')
property('prop2', 'value2')
property('user.timezone', 'UTC')
mavenOpts('--batch-mode')
}
shell('shell-task')
configure { node ->
node/builders {
'hudson.plugins.xshell.XShellBuilder'(plugin: '[email protected]') {
commandLine('run-me-as-the-last-build-step')
executeFromWorkingDir('true')
}
}
}
}
}
Если я просто включить первый блок настроить только, я получаю первую команду на первом этапе положение. Но со вторым (последним) блоком конфигурации присутствует "node/builders"
снова и снова перезаписывает первый элемент, поэтому run-me-as-the-last-step
является первым и единственным XShellBuilder. Выход я ищу будет выглядеть примерно так:
<project>
...
<builders>
<hudson.plugins.xshell.XShellBuilder plugin='[email protected]'>
<commandLine>run-me-as-the-first-build-step</commandLine>
<executeFromWorkingDir>true</executeFromWorkingDir>
</hudson.plugins.xshell.XShellBuilder>
<hudson.tasks.Maven>
<targets>clean verify</targets>
<properties>prop1=value1
user.timezone=UTC</properties>
<mavenName>Default</mavenName>
<jvmOptions>--batch-mode</jvmOptions>
<usePrivateRepository>false</usePrivateRepository>
</hudson.tasks.Maven>
<hudson.tasks.Maven>
<targets>deploy</targets>
<properties>prop2=value2
user.timezone=UTC</properties>
<mavenName>Default</mavenName>
<jvmOptions>--batch-mode</jvmOptions>
<usePrivateRepository>false</usePrivateRepository>
</hudson.tasks.Maven>
<hudson.tasks.Shell>
<command>shell-task</command>
</hudson.tasks.Shell>
<hudson.plugins.xshell.XShellBuilder plugin='[email protected]'>
<commandLine>run-me-as-the-last-build-step</commandLine>
<executeFromWorkingDir>true</executeFromWorkingDir>
</hudson.plugins.xshell.XShellBuilder>
</builders>
...
</project>
Я не могу понять, Groovy синтаксис XML/Job-DSL, чтобы вставить этот второй блок как «последнего ребенка, может ли Job-DSL или эксперт Groovy XMLParser пожалуйста дать мне указатель о том, чтобы соответствовать и вставить в произвольном положении в детях <builders>
?
(Я понимаю, что я мог бы использовать job(type:Maven)
с preBuildSteps
и postBuildSteps
, но на самом деле мне нужно несколько других вещей в там же котором чистая работа maven исключает.) Спасибо!
Получил его, и настройка должна быть за пределами шагов, спасибо –