2009-11-24 21 views
1

J'ai essayé Google pour trouver un moyen de le faire, mais je n'arrive pas à en trouver un ici.Crochet post-commit VisualSVN pour forcer cruisecontrol à construire

J'ai un serveur VisualSVN mis en place avec mes dépôts et ma configuration de cruisecontrol pour interroger le serveur et exécuter les scripts de construction quand il y a une modification. Comme je ne fais que travailler sur ce projet (c'est mon projet de fin d'études dans le cadre de mon diplôme), je ne pense pas que CC ait besoin d'interroger le serveur très souvent, car je vais vérifier les modifications.

Donc, ce que je veux, c'est que VisualSVN appelle la méthode Force Build de CruiseControl avec un hook post-commit. De cette façon, je sais que la construction sera exécutée chaque fois que je commet un changement.

VisualSVN et CC s'exécutent sur le même serveur si cela fait une différence.

Répondre

2

cliquez sur "forcer la construction" sur votre interface CC et copiez l'URL préparer un script de traitement par lots qui appelle wget et appelez ce script batch à partir du script hooks \ post-commit de votre repo. utilisez la modification définie dans CC config pour ce projet.

l'inconvénient de cette solution que si vous effectuez quelques commits de conséquence, cc sera déclenché pour chacun d'entre eux.

La solution alternative pourrait être de rendre svn touch un fichier sur chaque commit et de configurer CC pour utiliser ce fichier comme déclencheur.

+0

Merci, cela semble être la meilleure voie à suivre. – Morgeh

+0

Une solution de contournement, pour que les utilisateurs n'attendent pas l'exécution de CC, est l'appel post-commit.bat de démarrer une autre chauve-souris/exe qui appelle CC. Je l'utilise pour cal svnsync "async". – Zote

+0

Ce n'est pas pertinent: wget va simplement déclencher cc et quitter. Maintenant, de votre côté - soyez prudent avec votre solution: si svn sync prend du temps pour une raison quelconque et que peu de commits arrivent rapidement les uns après les autres, vous pouvez vous retrouver avec plusieurs batchs en arrière-plan et exécuter svnsync en même temps briser le verrouillage svnsync. – Moisei