İş-dsl-eklentisini kullanma Daha önce manuel olarak yapılandırılmış olan çok sayıda Jenkins işinin yapılandırmasını betimlemeye çalışıyorum.Jenkins Job-DSL'yi kullanma Belirli konumlara özel adımlar yerleştirmek için bloğu yapılandırın
Bu işlerin bir çeşidi, XShell eklentisini kullanan bir çift de dahil olmak üzere birden çok adım içerir, bu doğrudan iş-dsl tarafından desteklenmez. Ancak, özel bir "configure" bloğu kullanarak bunu yapabilmem gerekir.
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')
}
}
}
}
}
Sadece ilk yapılandırmak bloğu eklerseniz sadece ben ilk adım pozisyonunda ilk komutu alabilirim: http://job-dsl.herokuapp.com/ at "İş DSL oyun alanı" kullanma
Ben kadarıyla var. Ancak, ikinci (son) yapılandırma bloğu mevcut olduğunda, "node/builders"
, ilk öğede tekrar eşleşiyor ve üzerine yazılıyor, dolayısıyla run-me-as-the-last-step
, ilk ve tek XShellBuilder'tir. Geçen çocuk" olarak ikinci blok yerleştirmek için Groovy XML/Meslek-DSL sözdizimi çözemiyorum
<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>
; can bir iş-DSL veya Groovy XMLParser uzman edin: Ben aramaya çıktı benzer görünümde olacaktır ? bana maç ve <builders>
çocuklarında rastgele bir pozisyonda yerleştirmek için nasıl bir işaretçi vermek
preBuildSteps
ve
postBuildSteps
ile
job(type:Maven)
kullanabileceği takdir ama aslında ben de hangi bir oraya bir kaç başka şeyler ihtiyaç saf maven işi engeller.) Teşekkür ederiz
Anlaşıldı ve yapılandırmanın adımların dışında olması gerekir, teşekkürler –