2008-09-18 19 views
7

Utilizamos una pila CruiseControl.Net/NAnt/Subversion para CI. Hacer una nueva compra para cada compilación consume demasiado tiempo, por lo que actualmente solo hacemos una actualización en una copia de trabajo. Sin embargo, esto deja la posibilidad de que los archivos huérfanos puedan permanecer en la copia de trabajo, después de ser eliminados en el control de la fuente. Hemos intentado utilizar la tarea de eliminación de NAnt solo para eliminar todos los archivos fuente de código antes de una actualización, pero esto puede dañar la copia de trabajo. ¿Alguien sabe una forma rápida de ejecutar una compilación en una copia de trabajo limpia y actualizada? EDITAR: Estamos en SVN 1.3.2Creaciones limpias en integración continua

Respuesta

5

Si solo 'actualiza', SVN eliminará todos los archivos que se eliminaron en el control de código fuente. Sin embargo, los archivos que se crearon durante el proceso de compilación aún podrían estar allí y podrían interferir con la compilación nueva. No estoy seguro de si SVN tiene un comando para eliminarlos, pero supongo que podría hacerlo con un pequeño script, SVN definitivamente podría decirle qué archivos están bajo el control de código fuente y cuáles no.

1

Si hay archivos huérfanos en su copia de trabajo habiendo hecho una actualización svn entonces hay un error en su versión de Subversion.

1

Puede hacer una compilación completa diaria, y dejar la construcción en el check-in como está. Además, para las compilaciones de implementación, probablemente sea una buena idea usar siempre una compilación limpia y completa.

1

La única forma en que puedo pensar es tener dos copias en el servidor de compilación. Primero actualiza en la primera ubicación. Borras la segunda ubicación. Copie primero a segundo y luego construya en la segunda ubicación. De esa manera siempre comienzas desde una construcción limpia.

Es posible que desee ver por qué tarda tanto el proceso de pago. He usado la misma pila de servidor de compilación y nunca he tenido problemas con esto. La subversión usualmente tomaba menos tiempo que la construcción misma.

3

Tuvimos un problema similar con nuestra implementación de CC.

Nuestra solución ... Ya habíamos creado una construcción nocturna a las 3:00 a.m. que ejecutaba pruebas de integración de ejecución más larga además de las pruebas de la unidad base. Simplemente decidimos hacer que las 3:00 AM construyeran una construcción completamente limpia en un árbol nuevo. Como era la mitad de la noche, raramente afectaba a nadie. Todos los demás check-ins "normales" ejecutaron compilaciones incrementales.

Cuestiones relacionadas