J'essaie d'automatiser entièrement la création de Jenkins. J'ai obtenu la plupart de l'installation en utilisant des scripts groovy. Mon dernier obstacle est de créer un emploi en utilisant le DSL. Je suis en mesure de créer le travail en utilisant xml via:Jenkins: Automatiser la création d'un travail en utilisant DSL
import jenkins.model.*
def jobName = "jobname"
String configXml = new File('/jobname.xml').getText('UTF-8')
def xmlStream = new ByteArrayInputStream(configXml.getBytes())
Jenkins.instance.createProjectFromXML(jobName, xmlStream)
Cependant, le fichier XML est difficile à maintenir et pas facile à comprendre. Je voulais donc passer à l'utilisation de la syntaxe DSL, mais je ne peux pas réparer une API pour remplacer createProjectFromXML (...) avec quelque chose comme createPrjectFromDSL?
Ma question est comment créer un nouveau travail en utilisant DSL? J'ai travaillé cette partie, merci.
Cependant, ma question suivante est de savoir où mettre ce fichier afin que Jenkins crée le travail au démarrage? Lorsque je tente de le copier à /var/jenkins_home/init.groovy.d je reçois l'exception suivante au démarrage:
AVERTISSEMENT: Impossible d'exécuter le fichier de script: /var/jenkins_home/init.groovy.d/ neoconfig-dsl.groovy groovy.lang.MissingMethodException: Aucune signature de méthode: neoconfig-dsl.job() s'applique aux types d'argument: (java.lang.String, neoconfig-dsl $ _run_closure1) valeurs: [neo, neoconfig- dsl _run_closure1 $ @ 7d799f93] solutions possibles: run(), run(), tout(), attendez(), grep(), vidage()
Vous pouvez créer un projet qui récupèrera les tâches DSL à partir de repo distant et les compilera. – Opal
Je pense que c'est quelque chose que je cherche. Pouvez-vous élaborer un peu plus? Mon objectif est d'automatiser la création de tous mes emplois en utilisant le travail DSL. – Gerb