2009-08-29 35 views
17

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

+0

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

+0

Estoy viviendo en un entorno .NET/Windows. En este momento estamos usando Cruise Control .NET, MSBuild y NAnt para nuestras construcciones. –

+0

Revise este artículo: http://www.yegor256.com/2014/07/21/read-only-master-branch.html – yegor256

Respuesta

3

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.

2

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.

+0

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

1

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.

6
  1. Comience con una compilación de un paso. Si no tienes eso, no se puede tener ninguna CI razonable
  2. Si no está en control de código fuente, no existe
  3. 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.
  4. 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.
2

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