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
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.
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.
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.
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.
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.
- 1. Integración continua y QA
- 2. Subversion con integración continua
- 3. JSTestDriver e integración continua
- 4. Integración continua: mejores prácticas
- 5. integración continua con mysql
- 6. integración continua python
- 7. Integración continua con ASP.Net MVC
- 8. Windows Azure e integración continua
- 9. UI Testing Framework + Integración continua?
- 10. Integración continua para proyectos Xcode?
- 11. ¿Qué es la integración continua?
- 12. Integración continua de Git en Windows
- 13. ¿Cómo migrar de "Integración Arcana" a Integración Continua?
- 14. Configuración de la integración continua con SVN
- 15. Hudson o Teamcity para una integración continua?
- 16. Integración continua con .net y svn
- 17. Sistema de integración continua para Python Codebase
- 18. Configuraciones de compilación de integración continua
- 19. Integración continua con Teamcity y Clearcase
- 20. ¿Qué biblioteca de integración continua usar?
- 21. C#/NET - integración continua y FTP despliegue
- 22. ¿Qué software de integración continua usa?
- 23. ¿Qué marco de integración continua para Perl?
- 24. Integración continua frente a compilaciones nocturnas
- 25. Sistema de integración continua para Delphi
- 26. Integración continua (Hudson/Jenkins) y programación R
- 27. ¿La integración continua es importante para un desarrollador en solitario?
- 28. ¿Cómo usar MsTest en integración continua sin VS?
- 29. Herramienta de integración continua ejecutándose en App Engine
- 30. Implementación automática utilizando la integración continua en TFS 2012