af83

Ajouter un job jenkins en ligne de commande

Nous avons au fil des projets créé une sorte de template de job jenkins.

Le problème est que l'on utilise la fonction « Copier un Job existant » de jenkins et on doit faire des rechercher/remplacer.

Ce n'est pas très pratique via l'interface web de jenkins car certaines options sont cachées, et donc, on finit par en oublier.

On peut récupérer la config xml pour un job via un projet existant, par exemple :

cp ~/.hudson/jobs/NOM_DU_JOB/config.xml jenkins-project-template.xml

Puis éditer le fichier jenkins-project-template.xml pour avoir un fichier interprétable par ERB.

Un exemple avec l'URL du projet :

<projectUrl>https://github.com/AF83/<%= PROJECT %>/</projectUrl>

Une fois toutes les variables mises en place, on peut utiliser le template pour générer un job avec :

export PROJECT=sponges

ruby -rerb -e "PROJECT = ENV['PROJECT']
e = ERB.new(File.read('jenkins-project-template.xml'))
puts e.result" > $PROJECT.hudson.config.xml

curl -H "Content-Type: text/xml" -s --data "@$PROJECT.hudson.config.xml" \
"http://localhost:8080/createItem?name=$PROJECT"

blog comments powered by Disqus