J'essaie de créer un client WCF REST qui communiquera avec Jenkins et créera un travail à partir d'un fichier XML, puis créera le travail. Je crois comprendre que vous pouvez faire cela avec Jenkins.
Quelqu'un peut-il fournir des commandes que vous pouvez taper dans la barre d'adresse d'un navigateur pour créer et créer des travaux? ie: http:localhost/jenkins/createItem?name=TESTJOB
quelque chose dans ce sens.
Voir la page Jenkins API Wiki (avec les commentaires à la fin). Vous pouvez combler les lacunes en utilisant la documentation fournie par Jenkins elle-même; Par exemple, http://JENKINS_Host/api
vous donnera l'URL pour créer un travail et http://JENKINS_Host/job/JOBNAME/api
vous donnera l'URL pour déclencher une construction.
Je recommande vivement d'éviter la création personnalisée de fichiers XML de configuration de travaux et de rechercher quelque chose comme le plug-in Job DSL . Cela vous donne un DSL basé sur Nice Groovy pour créer des tâches par programme - beaucoup plus concis et moins sujet aux erreurs.
Habituellement, lors de l'analyse de la documentation, cela peut prendre un ou deux jours. Il est utile d’être en mesure d’accéder au code ou aux commandes curl pour vous permettre de démarrer en une heure. C'est mon objectif avec beaucoup de logiciels tiers.
Voir le message sur http://scottizu.wordpress.com/2014/04/30/getting-started-with-the-jenkins-api/ qui répertorie plusieurs des commandes curl. Vous devrez remplacer my.jenkins.com (c'est-à-dire JENKINS_Host) par votre propre URL.
Pour créer un travail, par exemple, essayez:
curl -X POST -H "Content-Type:application/xml" -d "<project><builders/><publishers/><buildWrappers/></project>" "http://JENKINS_Host/createItem?name=AA_TEST_JOB2"
Cela utilise une configuration générique. Vous pouvez également télécharger une configuration à partir d'un travail créé manuellement, puis l'utiliser comme modèle.
curl "http://JENKINS_Host/job/MY_JOB_NAME/config.xml" > config.xml
curl -X POST -H "Content-Type:application/xml" -d @config.xml "http://JENKINS_Host/createItem?name=AA_TEST_JOB3"
Pour exécuter le travail (et définir les paramètres de chaîne), utilisez:
curl "http://JENKINS_Host/job/MY_JOB_NAME/build"
curl "http://JENKINS_Host/job/MY_JOB_NAME/buildWithParameters?PARAMETER0=VALUE0&PARAMETER1=VALUE1"
Merci à un Gist - https://Gist.github.com/stuart-warren/7786892
Vérifier si le travail existe
curl -XGET 'http://jenkins/checkJobName?value=yourJobFolderName' --user user.name:YourAPIToken
Avec plugin de dossier
curl -s -XPOST 'http://jenkins/job/FolderName/createItem?name=yourJobName' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken
Sans dossier plugin
curl -s -XPOST 'http://jenkins/createItem?name=yourJobName' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken
Créer le dossier
curl -XPOST 'http://jenkins/createItem?name=FolderName&mode=com.cloudbees.hudson.plugins.folder.Folder&from=&json=%7B%22name%22%3A%22FolderName%22%2C%22mode%22%3A%22com.cloudbees.hudson.plugins.folder.Folder%22%2C%22from%22%3A%22%22%2C%22Submit%22%3A%22OK%22%7D&Submit=OK' --user user.name:YourAPIToken -H "Content-Type:application/x-www-form-urlencoded"
Si vous souhaitez créer un travail dans une vue, celle-ci existe.
curl -X POST -H "Content-Type:application/xml" -d @build.xml "http://jenkins_Host/view/viewName/createItem?name=itemName"
le filetemplate build.xml est disponible dans le répertoire racine de l'espace de travail d'un travail.
si vous voulez créer une vue:
curl -X POST -H "Content-Type:application/xml" -d @view.xml "http://jenkins_Host/createView?name=viewName"
le contenu du fichier view.xml pourrait être:
<?xml version="1.0" encoding="UTF-8"?>
<hudson.model.ListView>
<name>viewName</name>
<filterExecutors>false</filterExecutors>
<filterQueue>false</filterQueue>
<properties class="hudson.model.View$PropertyList"/>
<jobNames>
<comparator class="hudson.util.CaseInsensitiveComparator"/>
</jobNames>
<jobFilters/>
<columns>
<hudson.views.StatusColumn/>
<hudson.views.WeatherColumn/>
<hudson.views.JobColumn/>
<hudson.views.LastSuccessColumn/>
<hudson.views.LastFailureColumn/>
<hudson.views.LastDurationColumn/>
<hudson.views.BuildButtonColumn/>
</columns>
</hudson.model.ListView>
et pour vérifier si une vue existe:
curl -X POST -H "Content-Type:application/xml" "http://jenkins_Host/checkViewName?value=viewName"
pour vérifier si un emploi existe:
curl -X POST -H "Content-Type:application/xml" "http://jenkins_Host/checkJobName?value=jobName"