Mon poste de travail utilise Hudson pour ses builds quotidiens, avec plusieurs build esclaves (un Linux, un Windows, un Mac) vérifiant notre base de code complète de svn et construisant notre application à minuit chaque jour. Tout cela fonctionne assez bien.Comment puis-je m'assurer que tous mes esclaves build hudson vérifient la même révision svn pour la construction quotidienne?
Il y a un problème occasionnel qui se produit cependant ... parfois un développeur travaillera en retard, et verra un changement à svn juste après minuit. Lorsque cela se produit, il est possible que certains des esclaves de construction quotidiens fassent leur 'svn checkout' avant que le commit svn ne soit traité, tandis que les autres esclaves de build le feront après le traitement de la validation. Lorsque cela se produit, nous finissons avec différentes révisions construites sur différentes plates-formes ... par exemple. la version Mac pourrait être une version de la révision 5555 de SVN, tandis que la version Windows finirait par être une version 555 de la révision SVN. C'est dommage, car nous voulons que toutes les versions quotidiennes d'une journée soient basées sur la même base de code.
Je suppose qu'un moyen d'éviter cela est d'interdire aux développeurs de s'engager à svn entre 23h30 et 12h30, mais je préfère une solution plus élégante qui ne repose pas sur le comportement des développeurs. Est-ce qu'il y a un? En particulier, s'il y a un moyen de dire à hudson de vérifier la révision du code qui était en cours à minuit du jour courant (par exemple "svn co -r {" the-current-date "}") au lieu de vérifier HEAD, je pense que cela pourrait faire l'affaire.
Existe-t-il un moyen commun/facile de gérer ce problème?
Commencer la construction à 1h du matin? :) –
lol, c'était un bon. J'espère qu'ils n'ont pas de problème, de sorte que les développeurs sont là jusqu'à 13h ou même plus tard. ;) –