Comme mentionné dans "leScrutin doit mourir: le déclenchement de Jenkins construit à partir d'un git crochet", vous pouvez vous informer Jenkins d'un nouveau commit:
Avec la dernière Git plugin 1.1.14 (que je viens de version maintenant), vous pouvez désormais le faire plus >facilement, simplement en exécutant la commande suivante:
curl http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>
Cette analyse tous les emplois qui est configuré pour vérifier l'URL spécifiée, et s'ils sont configurés avec des sondages, il va immédiatement déclencher l'interrogation (et si qui constate un changement en vaut une construction, un build sera déclenché à son tour.)
Cela permet à un script de rester même lorsque les emplois d'aller et venir dans Jenkins.
Ou si vous avez plusieurs référentiels en vertu d'un référentiel unique de l'application hôte (comme Gitosis), vous pouvez partager un post-recevoir script hook avec tous les référentiels. Enfin, cette URL ne nécessite pas d'authentification de même pour les sécurisé Jenkins, parce que le serveur n'est pas directement utiliser ce que le client envoie. Il fonctionne d'interrogation pour vérifier qu'il y a un changement, avant qu'il ne commence effectivement l'accumulation.
Comme mentionné ici, assurez-vous d'utiliser la bonne adresse pour votre serveur Jenkins:
puisque nous sommes en cours d'exécution Jenkins comme autonome Serveur web sur le port 8080 l'URL doit avoir été sans l' /jenkins
, comme ceci:
http://jenkins:8080/git/notifyCommit?url=git@gitserver:tools/common.git
Vous pouvez également utiliser un simple post-recevoir crochet en forme de "Pousser fondé construit à l'aide de Jenkins et GIT"
#!/bin/bash
/usr/bin/curl --user USERNAME:PASS -s \
http://jenkinsci/job/PROJECTNAME/build?token=1qaz2wsx
Configurer votre Jenkins travail pour être en mesure de "Déclencher construit à distance" et d'utiliser un jeton d'authentification (1qaz2wsx
dans cet exemple).
Cependant, c'est un projet de scénario précis, et l'auteur mentionne un moyen de généraliser.
La première solution est plus facile, car il ne dépend pas de l'authentification ou un projet spécifique.
Je veux vérifier dans le changement de définir si au moins un fichier java est-il la construction doit démarrer.
Supposons que les développeurs changé seulement les fichiers XML ou les fichiers de propriétés, puis la construction ne doit pas démarrer.
Fondamentalement, vous pouvez créer un script peut:
- mettre un "build" notes (voir
git notes
) sur le premier appel
- sur les appels suivants, prenez la liste des commits entre
HEAD
de votre branche candidat pour la construction et la validation référencé par l' git notes
'construire' (git show refs/notes/build
): git diff --name-only SHA_build HEAD
.
- votre script peut analyser cette liste et de décider s'il faut aller sur la construction.
- dans tous les cas, créer/déplacer votre
git notes
'build
' HEAD
.