He estado pensando en CI y las construcciones automáticas últimamente y estoy interesado en saber si existen algunas prácticas recomendadas para configurar y mantener un entorno de integración continua. ¿Mantiene todos sus archivos relacionados con CI registrados con la fuente de su proyecto? ¿Cómo suele estructurar su CI y compilar archivos? ¡Cualquier consejo es bienvenido!Integración continua: mejores prácticas
Respuesta
Si ha hecho ya, sin duda la salida del libro Continuous Integration de la serie de Martin Fowler, por Duvall/Matyas/Glover. Cubre todas las preguntas que hace en profundidad con ejemplos sólidos.
También está la Serie Pragmática '"Pragmatic Project Automation".
Por supuesto, todos los archivos necesarios para compilarse deben registrarse. ¿De qué otro modo podría obtener CI?
He usado CI con Java, por lo que significa Ant build.xml y Cruise Control, Team City o Hudson. Es posible que build.xml sea genérico si se atiene a una estructura de directorios coherente para sus proyectos.
Sí. Tendrá que instalar varias cosas en su servidor de compilación, pero el objetivo es tener todos sus archivos relacionados con CI bajo control de origen (y que el servidor de CI extraiga los archivos desde allí). Usamos TeamCity para el desarrollo de C#. Si una construcción se vuelve compleja, usamos NAnt (que también puede llamar a MSBuild). – TrueWill
Si su script de construcción comienza a crecer, puede dividirlo e incluir las partes relevantes. Esto mejora el mantenimiento y la legibilidad.
Mi otro consejo sería diferente a la programación tradicional: al crear un script de compilación, utilice cantidades generosas de comentarios.
- Comience con una compilación de un paso. Si no tienes eso, no se puede tener ninguna CI razonable
- Si no está en control de código fuente, no existe
- Si el establecimiento y el mantenimiento de su CI supera el esfuerzo de crear un desarrollador estación de trabajo, entonces usted es demasiado dependiente de su IDE o la estructura de su proyecto es demasiado complicada. Considere eso como una oportunidad de refactorización.
- No necesita nada especial para hacer CI. Ni siquiera necesitas saber qué es hacerlo. Escribí sobre my earlier experience here, cuando implementé un CI ingenuo antes de haber escuchado el término CI.
Kohsuke Kawaguchi, el fundador de la popular herramienta Jenkins/Hudson CI, acaba de publicar un libro blanco que puede ser útil. 7 Ways to Optimize Jenkins
- 1. Windows Azure e integración continua
- 2. Mejores prácticas de prueba de integración
- 3. ¿Cómo migrar de "Integración Arcana" a Integración Continua?
- 4. Integración continua y QA
- 5. integración continua con mysql
- 6. JSTestDriver e integración continua
- 7. Subversion con integración continua
- 8. integración continua python
- 9. ¿Qué marco de integración continua para Perl?
- 10. ¿Mejores prácticas para las pruebas de integración con Maven?
- 11. Integración continua frente a compilaciones nocturnas
- 12. UI Testing Framework + Integración continua?
- 13. Creaciones limpias en integración continua
- 14. Integración continua con ASP.Net MVC
- 15. ¿Qué es la integración continua?
- 16. Integración continua para proyectos Xcode?
- 17. TFS: mejores prácticas de combinación
- 18. Node.js + mejores prácticas repetitivo
- 19. ¿Qué software de integración continua usa?
- 20. Integración continua de Git en Windows
- 21. Configuración de la integración continua con SVN
- 22. Integración continua con .net y svn
- 23. C#/NET - integración continua y FTP despliegue
- 24. Sistema de integración continua para Python Codebase
- 25. Configuraciones de compilación de integración continua
- 26. ¿Qué biblioteca de integración continua usar?
- 27. Hudson o Teamcity para una integración continua?
- 28. Sistema de integración continua para Delphi
- 29. Integración continua con Teamcity y Clearcase
- 30. Integración continua (Hudson/Jenkins) y programación R
allot fo CI las cosas son independientes de la plataforma, pero la forma en que se estructuran sus archivos de CI y de construcción parte de su pregunta puede estar influenciada por la plataforma. ¿Te importa compartir tu plataforma? – olle
Estoy viviendo en un entorno .NET/Windows. En este momento estamos usando Cruise Control .NET, MSBuild y NAnt para nuestras construcciones. –
Revise este artículo: http://www.yegor256.com/2014/07/21/read-only-master-branch.html – yegor256