Mi lugar de trabajo utiliza Hudson para sus compilaciones diarias, con varios esclavos de compilación (un Linux, un Windows, un Mac) revisando nuestra base de código completa de svn y construyendo nuestra aplicación a la medianoche de cada día. Todo esto funciona bastante bien.¿Cómo puedo asegurarme de que todos mis esclavos hudson compilan la misma revisión svn para la compilación diaria?
Ocurre un problema ocasional ... a veces un desarrollador trabaja hasta tarde y verificará un cambio a svn justo después de la medianoche. Cuando esto ocurre, es posible que algunos de los esclavos de compilación diaria hagan su 'svn checkout' antes de que se procese el svn commit, mientras que otros esclavos de compilación lo harán después de que se procese el commit. Cuando esto sucede, terminamos con diferentes revisiones creadas en diferentes plataformas ... p. la compilación de Mac podría ser una compilación de la revisión SVN 5555, mientras que la compilación de Windows termina siendo una compilación de la revisión 5556 de SVN. Eso es malo, ya que queremos que todas las compilaciones diarias para un día determinado se basen en la misma base de código.
Supongo que una forma de evitar esto es prohibir a los desarrolladores que se comprometan con svn entre las 11:30 PM y las 12:30 AM, pero preferiría una solución más elegante que no dependa del comportamiento de los desarrolladores. ¿Hay alguno? En particular, si hay una manera de decirle a Hudson que revise la revisión del código que estaba vigente a la medianoche del día actual (por ejemplo, "svn co -r {" the-current-date "}") en lugar de echarle un vistazo HEAD, creo que podría hacer el truco.
¿Existe una forma común/fácil de manejar este problema?
Comience la compilación a la 1am? :) –
jaja, esa fue una buena idea. Espero que no tengan ningún problema, para que los desarrolladores estén allí hasta la 1 pm o incluso más tarde. ;) –