2016-06-28 35 views
0

Ich habe mehrere Projekte, die Ivy verwenden und deshalb habe ich Ivy-Jobs erstellt, die meine Artefakte in einem Repository erstellen und veröffentlichen.Jenkins: Ist es möglich, mit Jenkinsfile einen Ivy-Job zu erstellen? (Pipeline als Code)

Das Ivy-Plug-in ist sehr nützlich, da es automatisch Abhängigkeiten für mich kümmert. Allerdings verschiebe ich diese Jobs in eine "Pipeline als Code" -Ansatz und möchte Jenkinsfile s verwenden, um automatisch die Jobs für jedes meiner Projekte zu erstellen.

Mein Zweifel ist: kann ich die gleichen Jobs (Ivy) mit einem Jenkinsfile erstellen? Wenn nicht, kann ich irgendeine Art von Ivy-Job mit einer Jenkinsfile erstellen?

Antwort

2

Sie können die Job-DSL-Plugin aus einem Jenkinsfile verwenden, um neue Arbeitsplätze zu schaffen, siehe https://github.com/jenkinsci/job-dsl-plugin/wiki/User-Power-Moves#use-job-dsl-in-pipeline-scripts

Der folgende Pipeline Code ruft den Job DSL Build-Schritt, der dann den ivyJob.groovy Job DSL-Skript ausgeführt werden soll.

node { 
    step([ 
    $class: 'ExecuteDslScripts', 
    scriptLocation: [targets: ['ivyJob.groovy']], 
    removedJobAction: 'DELETE', 
    removedViewAction: 'DELETE', 
    lookupStrategy: 'SEED_JOB', 
    ]) 
} 

Das ivyJob.groovy Skript wird dann einen Ivy Job erstellen und eine Ant-Build ausführen:

ivyJob('example') { 
    ivyBuilder { 
    ant { 
     target('clean') 
     targets(['test', 'publish']) 
     buildFile('build.xml') 
     antInstallation('Ant 1.9') 
     prop('key', 'value') 
     javaOpt('-Xmx=1G') 
    } 
    } 
} 

den Job DSL-API-Dokumentation für Details: https://jenkinsci.github.io/job-dsl-plugin/#path/ivyJob

+0

Dank, dass der Trick! :-) – Phil