2010-08-12 25 views
1

J'ai un travail que je veux exécuter chaque fois qu'une validation est effectuée dans un référentiel. Je veux éviter d'abaisser ce code, je veux seulement le déclencheur de génération de notification. Donc, existe-t-il un moyen de ne pas tirer vers le bas de certains dépôts dans votre SCM sur une construction ou un moyen d'interroger des choses qui ne sont pas dans le SCM pour une construction?Un travail Hudson peut-il interroger un SCM sans retirer le code?

+0

D'où devrait provenir le code utilisé par les emplois en cours d'exécution? –

+0

Le code est déjà là, en cours de construction par un script shell. Un exemple plus clair: chaque fois que quelqu'un commet, je veux que Hudson exécute un script shell arbitraire. Dans mon cas, le script shell fait la construction entière, mais il pourrait faire n'importe quoi. Le fait est qu'il n'est pas nécessaire de retirer du code dans l'espace de travail pour le moment. Finalement, nous pourrions nous débarrasser de ce script, mais pour l'instant, il est plus facile de tirer parti du script de production existant. – dhackner

Répondre

1

vous pouvez utiliser un post commit hook pour déclencher votre travail hudson.

+0

Hudson ne vérifie pas les mises à jour d'un SCM et ne tire pas les sources. –

+1

@Peter - pas vrai, un travail de Hudson peut exécuter n'importe quelle commande de shell et n'a pas besoin de faire quoi que ce soit avec le code source du tout. Vous pouvez déclencher n'importe quel travail Hudson à partir d'un crochet de validation de publication. –

+0

Cela impliquerait de modifier les crochets de validation SVN, une opération intrusive que je voudrais éviter tout en développant notre serveur CI. – dhackner

0

Puisque vous voulez éviter de changer le SVN, vous devez écrire un travail qui est exécuté de temps en temps (toutes les 5 minutes). Ce travail exécute une commande svn en utilisant la tâche de script Windows bach ou shell pour obtenir la révision en cours de la branche en question. Vous pouvez définir l'état du travail sur instable s'il y a un changement. N'utilisez pas l'échec car vous ne pouvez pas distinguer entre un échec réel et un changement de référentiel. Je pense qu'il existe un plugin qui définit le statut du job en fonction du contenu de votre sortie.

Vous pouvez ensuite utiliser le plugin d'extension de courrier électronique pour envoyer un e-mail chaque fois que la révision est modifiée. Vous pouvez obtenir le numéro de révision à partir du dernier (ou mieux le dernier travail réussi ou instable). Vous pouvez archiver un fichier contenant le numéro de révision sur les travaux ou vous pouvez définir la description du travail sur la révision à l'aide du plug-in setter de description. Jetez un oeil à l'API Hudsons à distance pour des idées sur la façon d'obtenir les informations de l'emploi précédent.

Depuis que vous exécutez votre travail très souvent pendant la journée. n'oubliez pas de supprimer les anciens travaux. Mais je garderais au moins deux jours d'histoire, juste au cas où votre svn est en panne pendant 24 heures.