2015-02-16 20 views
6

İş-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

(I 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

cevap

6

Düğüm eklemek için << işlecini kullanabilirsiniz, aksi taktirde aynı ada sahip bir düğüm değiştirilir. Detaylar için Job DSL wiki'a bakın.

job { 
    name('foo') 
    steps { 
    shell('echo AAA') 
    } 
    configure { 
    it/builders << 'hudson.plugins.xshell.XShellBuilder' { 
     commandLine('123') 
    } 
    } 
    steps { 
    shell('echo BBB') 
    } 
    configure { 
    it/builders << 'hudson.plugins.xshell.XShellBuilder' { 
     commandLine('456') 
    } 
    } 
} 
+1

Anlaşıldı ve yapılandırmanın adımların dışında olması gerekir, teşekkürler –

İlgili konular