8 votes

Demandez à buildbot d'interroger un dépôt git à la recherche de nouveaux commits ?

Existe-t-il un buildbot qui interrogera un dépôt git à la recherche de nouveaux commits, comme le plugin changes.SVNPoller ?

Le plus proche que j'ai trouvé est git_buildbot.py mais il s'agit d'un hook post-commit, qui ne fonctionnera donc pas avec ma configuration (utilisation de Github, et buildbot sur une machine que le post-commit de github ne peut pas atteindre) - une simple interrogation du dépôt git fonctionnerait parfaitement.

J'ai actuellement un build exécuté une fois par heure, mais il n'y a pas vraiment d'intérêt à exécuter les tests à moins que quelque chose n'ait changé.

9voto

jtomson Points 156

Mise à jour : Les gentils membres du projet Buildbot ont fait du GitPoller un Change Source officiel à partir de la version 0.8.2, et ont apporté plusieurs améliorations à l'original.


Notre entreprise se trouve dans une situation similaire où nos machines de construction ne peuvent pas être atteintes par le hook post-commit de GitHub. J'ai écrit un GitPoller qui peut être utilisée comme la source de changement SVNPoller .

Il est disponible ici : http://github.com/wimba/buildbot/blob/master/buildbot/changes/gitpoller.py

et utilisé comme suit :

from buildbot.changes.gitpoller import GitPoller
c['change_source'] = GitPoller('git@example.com:foobaz/myrepo.git',
                               branch='great_new_feature')

Il créera un repo local pour travailler (emplacement configurable), et il n'a été testé qu'avec git 1.7 Il est donc possible que votre kilométrage varie.

Nous espérons qu'il sera intégré au projet Buildbot proprement dit à un moment donné, mais il a fonctionné pour nous jusqu'à présent et nous espérons qu'il pourra être utile à d'autres :)

4voto

roder Points 321

Mieux vaut tard que jamais... Je viens de publier un blog sur le crochet de service GitHub que j'ai écrit pour BuildBot.

Vous pouvez le trouver ici : http://app.arat.us/blog/?p=136

1voto

Pat Notz Points 46841

Je n'ai pas du tout joué avec buildbot mais ne pourriez-vous pas faire un git fetch puis regardez la sortie de git log master..origin/master ? S'il n'y a pas de nouveaux commits, la sortie sera vide (il y a, bien sûr, une tonne d'autres options que vous pouvez utiliser sur git log ). S'il y a de nouveaux commits, il suffit de faire un git merge et commencez votre cycle de construction/test.

0voto

Russell Gallop Points 489

J'aime bien l'approche de gitpoller.py mais pour l'instant je la trouve un peu limitée (par exemple, elle n'envoie pas les révisions, les arguments du projet) et j'ai donc trouvé une autre solution :

J'ai mon propre dépôt cloné à partir du dépôt distant et git_buildbot.py appelé par le hook post-fusion (comme décrit dans git_buildbot.py). J'ai une petite boucle qui dort et qui tire git dans ce dépôt, ce qui déclenchera le hook post-fusion.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X