2009-06-10 14 views
4

Je suis à la recherche d'un moyen de déclencher une version de Cruise Control.net à partir d'un hook post-commit de subversion.Déclenchement de Cruise Control.net à l'aide du hook post-commit

Je veux que ceci démarre l'assemblage directement après une validation. Je connais la manière normale de faire cela (interroger le serveur) mais il semble inutile de continuer à interroger le serveur quand cela peut être fait en utilisant un crochet. Une pensée serait d'invoquer la fonctionnalité "Force Build" du tableau de bord, mais cela déclenchera une construction même si toutes les modifications sont en dehors de l'arborescence du chemin réseau et donc qu'aucune modification n'a été faite qui justifie une construction.

Répondre

0

Votre idée d'utiliser la "Force Build" fonctionnera probablement.

Je ne comprends pas votre inquiétude au sujet des modifications à l'extérieur de l'arbre du chemin interurbain? Ne pouvez-vous pas vérifier cela dans le hook post-commit et ne forcer une build que si le fichier modifié est sous/trunk

Avez-vous considéré l'inconvénient de le faire?

Vous avez 2 ensembles de modifications. Vous validez le jeu de modifications 1, la construction démarre, vous validez changeset2 et attendez que votre build/test se termine avant qu'une autre build commence à construire/tester changeset 2.

+0

(Correction d'une faute dans le commentaire) J'ai considéré la baisse, mais mon scénario typique (petite équipe, construction relativement rapide) serait à la hausse. L'agrégation des builds rend plus difficile de savoir quelle révision a cassé une build. – FkYkko

1

Le problème avec les changements de filtrage est exactement pourquoi CC.NET utilise le mécanisme d'interrogation. (Cela, et le fait qu'il peut y avoir quelques scénarios où il est souhaitable d'inclure de nouveaux changements de plusieurs développeurs dans la construction.)

La fonctionnalité "Force build" est le seul mécanisme auquel je peux penser pour y parvenir, Toutefois, si vous vouliez uniquement des modifications du tronc qui nécessiteraient que votre hook post-commit exécute l'équivalent d'un journal svn (éventuellement un journal détaillé) via un paramètre de filtre approprié, déclenchez la "force build" uniquement si nécessaire.

+0

En fait, au lieu de 'svn log', svnlook vous donnera une liste de seulement les fichiers dans le commit actuel. Vous pouvez ensuite grep la liste pour la chaîne/tronc /. Je fais cela dans un de mes posts. – james

0

Je recommanderais de ne pas le faire, mais si vous le voulez vraiment, je commencerais par un URL trigger. Le déclencheur d'URL surveille toute URL pour les modifications, de sorte que vous pouvez simplement mettre à jour votre fichier de mise à jour de validation de publication d'un fichier html. Sinon, si vous utilisez viewvc, vous pourriez avoir surveiller l'adresse suivante:

http://servername/viewvc/repos?view=rev&revision=HEAD 

Cette URL sera mise à jour après chaque commettras à SVN

+0

L'utilisation du déclencheur d'URL pour cela est fondamentalement identique à l'utilisation du déclencheur de modification standard. C'est toujours une opération de vote. Btw, je ne vais probablement pas faire non plus. – FkYkko